天天看點

J2EE 應用伺服器叢集

在Web上企業正在選擇Java2, Enterprise Edition (J2EE)産生他們關鍵性任務的應用.在J2EE架構裡,叢集提供了保證最少下載下傳時間和最大伸縮性的關鍵性任務服務.叢集是在一組應用伺服器顯式運作你的J2EE應用,就象一個實體一樣,對于伸縮來說,你以後會在叢集裡引入額外的機器.确定叢集的每個元件都是備援的,來保證最少的下載下傳時間.

J2EE應用伺服器提供商給叢集下了定義,一個叢集就是一組在一起工作,顯式提供企業服務(支援JNDI,EJB,JSP, HttpSession群組件失敗轉移等等)的機器群.他們特意給出了含糊不清的定義,因為每個提供商實作群集是有差異的.有些提供商把一個分發器放到一組獨立的機器前面,在叢集裡這些機器彼此之間互不了解.在這個方案裡,分發器從使用者那裡收到一個初始的請求,然後由叢集裡具體的成員伺服器通過HTTP把頭重定向到用戶端應答.另一些提供商實作了一個緊密的,完整的機器聯盟,每個機器都随着那些機器上的對象知道它周圍的其他機器.

除了機器外,叢集可以包括備援和失敗轉移的能力.

·負載均衡器(Load balancers):

進入叢集和通行訓示器到單個Web或應用伺服器的唯一入口點

·Webservers

·網關路由器(Gateway routers)在内網外的的出口點.

·多層交換器(Multilayer switches)

包和幀過濾確定在叢集裡的每個機器僅僅收到相關機器的資訊.

·防火牆(Firewalls)

叢集保護器通過端口過濾防止Hackers通路叢集和内網

·存儲區域網絡交換器(SAN---Storage Area Networking switches)

連接配接應用伺服器,web伺服器,和資料庫到一個後端存儲媒介;

管理寫資料到實體硬碟;還有失敗轉移.

·資料庫(Databases)

不管他們是如何實作的,所有的叢集都提供兩個好處:可伸縮性(scalability)和高可用性(high availability---HA) 

可伸縮性(scalability)

伸縮性支援使用者增長時保證應用服務品質的能力.叢集允許你依靠增加額外的伺服器提供額外的容量,因而保證伸縮性.

高可用性(highavailability---HA) 

HA能被一個詞概括:備援.叢集使用許多的機器處理服務請求.是以,如果在叢集裡的任何機器失敗,另外一台機器會直接接管.

叢集僅僅在應用伺服器層提供HA.對于一個要展示真正HA的Web系統,一定象諾亞方舟一樣至少包括Web伺服器,網關路由器,交換基礎設施,等等中的兩種.(關于HA的更多内容,看這個HA Checklist.)

叢集類型

J2EE叢集通常流行兩種風格:非共享和共享磁盤.在非共享叢集裡,每個應用伺服器都有的它自己的檔案系統,和這個叢集裡運作的應用程式自己的拷貝相一緻.應用的更新和增加需要更新叢集裡的每個節點.當代碼增加和更新釋出時進行配置,大的叢集有惡夢般的維護.

相反,磁盤共享叢集使用一個所有的應用伺服器都用的儲存設備來擷取在叢集裡運作的應用.更新和增加出現在一個檔案系統裡,叢集裡的所有的機器可以通路這些變化.直到最近才發現,單點失敗是這種方法的不利方面.然而,SAN給出了一個單獨的邏輯接口,通過這個接口可以進入到一個提供失敗轉移,回報,和伸縮性的備援存儲中介.(關于SAN更多的内容,看Storage Infrastructure)

當比較J2EE應用伺服器的叢集實作時,重要考慮:

·叢集實作

·叢集群組件失敗轉移服務

·HttpSession失敗轉移

·叢集拓撲裡的單點失敗

·柔性拓撲規劃

·維護

繼續閱讀