Java EE集羣技術初探——第二部分(什麼是Java EE的集羣)

 
總的來講,Java EE集羣技術包括負載均衡失敗轉移兩個部分。
 
在上圖中,負載均衡即指由許多客戶端對象(Client Object)同時請求目標對象(Target Object)。負載均衡器位於調用方和被調用方中間,可以將請求分發至功能相同但位置不同的目標對象中。高性能和高可用性都可通過這種方法實現。
 
如上圖,失敗轉移的工作方式和負載均衡不同。通常,客戶端對象可成功請求目標對象。如果目標對象在請求過程中失敗,失敗轉移系統將監測到失敗,並將後續的請求重定向至另一個可用的對象上。可通過這種方法實現容錯。
 
那麼,什麼類型的對象可以集羣呢?在Java代碼中如何體現負載均衡和失敗轉移的點呢?實際上,並不是所有的對象都可以被集羣起來,負載均衡和失敗轉移也不可能在任意一行Java代碼上發生。
 
查看上述代碼。A類中business()方法的代碼可以被負載均衡或失敗轉移麼?我們的答案是不會。對於負載均衡和失敗轉移來說,都需要在調用方和被調用方之間有一個監聽器來負責分發或重定向對不同對象的方法調用。A類和B類的對象運行在相同的JVM中,並且緊密關聯,我們很難在方法調用之間添加分發邏輯。
 
所以,什麼類型的對象可以被集羣起來呢?答案是隻有那些能夠被部署在分佈式拓撲環境下的組件對象。
 
所以,何時產生負載均衡和失敗轉移的行爲呢?答案是只有在調用分佈式對象的方法時。
 
 
如上圖所示,在分佈式環境下,調用方和被調用方被明確分隔在不同的運行時容器中。可通過不同的JVM、進程或計算機來進行分隔。
 
當客戶端調用目標對象時,即在目標對象的容器中執行方法(所以稱之爲分佈式”)。客戶端和目標對象通過標準的網絡協議通信。通過這些特性,可使用一些機制來干預方法調用的路徑達到負載均衡和失敗轉移的目的。
 
在上圖中,瀏覽器可能通過HTTP協議調用遠程JSP對象。JSPWeb服務器中執行,瀏覽器並不關心執行過程,它只等待結果。在這種情況下,即可在瀏覽器和Web服務器中間加上能實現負載均衡和失敗轉移功能的組件。在Java EE中,分佈式技術包括:JSP(Servlet)JDBCEJBJNDIWeb服務等。負載均衡和失敗轉移在調用這些分佈式方法的時候發生。下面,我們就來深入探討這些技術細節。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章