關於J2EE應用伺服器叢集簡介

J2EE應用服務器提供商給叢集下了定義, 一個叢集就是一組在一起工作,顯式提供企業服務(支援JNDI,EJB,JSP, HttpSession和元件失敗轉移等等)的機器群.下面是小編整理的J2EE應用伺服器叢集簡介,希望大家認真閱讀!

關於J2EE應用伺服器叢集簡介

  負載均衡器(Load balancers):

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

  ·Web servers

·閘道器路由器(Gateway routers) 在內網外的的出口點.

·多層交換器(Multilayer switches)

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

  ·防火牆(Firewalls)

叢集保護器通過埠過濾防止Hackers訪問叢集和內網

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

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

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

  ·資料庫(Databases)

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

  可伸縮性(scalability)

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

  高可用性(high availability---HA)

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

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

  叢集型別

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

相反,磁碟共享叢集使用一個所有的應用伺服器都用的儲存裝置來獲取在叢集裡執行的應用.更新和增加出現在一個檔案系統裡,叢集裡的所有的機器可以訪問這些變化.直到最近才發現, 單點失敗是這種方法的不利方面.然而,SAN給出了一個單獨的邏輯介面,通過這個介面可以進入到一個提供失敗轉移,反饋,和伸縮性的冗餘儲存中介.(關於SAN更多的內容,看Storage Infrastructure)

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

·叢集實現

·叢集和元件失敗轉移服務

  ·HttpSession失敗轉移

·叢集拓撲裡的單點失敗

·柔性拓撲規劃

·維護

以後我們將看到四種流行的應用伺服器在不同領域如何比較,但是,首先還是讓我們更詳細的檢查所要考慮的每一項.

  叢集實現

J2EE應用伺服器在他們的JNDI(java命名和目錄介面)實現周圍實現了群集.雖然JNDI是J2EE應用依賴的核心服務,但是它很難在叢集裡實現,因為它不能把多個物件繫結在單個名字上.關於每個應用伺服器的JNDI實現有三個普遍的群集方法.

·獨立的

·中央集中的

·全域性共享的

獨立JNDI樹

HP Bluestone Total-e-Server 和SilverStream Application Server利用了一個適合於每個應用伺服器的獨立JNDI樹.在一個獨立JNDI樹的叢集裡成員伺服器不知道或不關心叢集裡其他服務的存在.因此,不支援失敗轉移或者通過重定向HTTP或EJB請求的媒介服務提供支援.配置媒介服務,使他們知道叢集裡每個元件都駐留在哪裡和萬一失敗發生如何得到一個替代的元件.

獨立JNDI樹的叢集它的一個優點:更短的叢集收斂時間和靈活的伸縮.叢集收斂衡量了叢集完全知道叢集裡所有的機器和相關物件的時間.然而, 在一個獨立JNDI樹的叢集裡收斂(Convergence)並不是一個要關心的問題,因為叢集在兩臺機器一啟動就完成了收斂(Convergence).獨立的JNDI樹的其他優點:伸縮僅僅需要需要增加額外的伺服器.