JBoss企業(yè)級(jí)應(yīng)用服務(wù)平臺(tái)群集指南(一)

版權(quán)聲明:原創(chuàng)作品,如需轉(zhuǎn)載,請(qǐng)與作者聯(lián)系。否則將追究法律責(zé)任。
1.集群
——用JBoss群集實(shí)現(xiàn)高可用性企業(yè)服務(wù)
1.1 前言
群集系統(tǒng)(Clustering)允許我們?cè)诙嗯_(tái)平行的服務(wù)器(群集節(jié)點(diǎn))上運(yùn)行一個(gè)應(yīng)用程序。負(fù)載分布在不同的服務(wù)器上,即使其中任何一臺(tái)崩潰,應(yīng)用程序還是可以在其他群集節(jié)點(diǎn)(cluster nodes)上運(yùn)行。群集對(duì)于可擴(kuò)展性企業(yè)級(jí)應(yīng)用程序是很關(guān)鍵的,因?yàn)槟愫?jiǎn)單地把更多節(jié)點(diǎn)加入到群集系統(tǒng)里就可以提高性能。
JBoss 應(yīng)用服務(wù)器(AS)缺省支持群集系統(tǒng)。最簡(jiǎn)單的啟動(dòng) JBoss 服務(wù)器群集的方法就是在同一本地網(wǎng)絡(luò)里啟動(dòng)多個(gè) JBoss 實(shí)例,每個(gè)實(shí)例都可以用 run -c all 命令來運(yùn)行。這些按照 all 配置文件啟動(dòng)的實(shí)例,可以檢測(cè)到對(duì)方而自動(dòng)組成一個(gè)群集系統(tǒng)。
在本章的第一部分,我們將討論 JBoss 群集服務(wù)的基本概念。在閱讀本章后面的內(nèi)容之前,先理解這些概念是很重要的。在這部分內(nèi)容之后,我們將介紹怎樣為特定類型的應(yīng)用程序配置群集系統(tǒng)。
1.1.1 群集系統(tǒng)的定義
群集系統(tǒng)是節(jié)點(diǎn)(node)的集合。在 JBoss 群集系統(tǒng)里,節(jié)點(diǎn)是一個(gè) JBoss 服務(wù)器實(shí)例。因此,為了建立一個(gè)群集,JBoss 實(shí)例必須組合在一起(通稱"partition")。在同一個(gè)網(wǎng)絡(luò)里,我們可能有不同的群集。為了區(qū)分,每個(gè)群集都必須有一個(gè)唯一的名字。

圖 1.1. 集群和服務(wù)節(jié)點(diǎn)

每個(gè) JBoss 服務(wù)器實(shí)例(節(jié)點(diǎn))在 deploy/cluster-service.xml 文件的 ClusterPartition MBean 里指定了它所加入的群集(也就是 partition)。所有具有相同 ClusterPartition MBean 配置的節(jié)點(diǎn)加入到同一個(gè)群集系統(tǒng)里。因此,如果你想把同一個(gè)網(wǎng)絡(luò)里的 JBoss 節(jié)點(diǎn)分開到兩個(gè)群集里,你可以使用兩個(gè)不同的 ClusterPartition MBean 配置,每個(gè)節(jié)點(diǎn)可以根據(jù)它所需要加入的群集來選擇其中一個(gè)配置。如果節(jié)點(diǎn)啟動(dòng)的時(shí)候,它指定的群集不存在,這個(gè)群集將被創(chuàng)建。相同地,當(dāng)群集系統(tǒng)的所有節(jié)點(diǎn)都被刪除后,這個(gè)群集也將被刪除。

在這里,我們忽略了這個(gè)群集的詳細(xì)的 JGroups 協(xié)議配置(protocal configuration)。JGroups 處理節(jié)點(diǎn)之間底層的點(diǎn)到點(diǎn)通信,我們將在 Section 1, “JGroups配置”里討論它的配置。下面的列表展示了 ClusterPartition MBean 里可用的配置屬性。
u PartitionName 是用來指定節(jié)點(diǎn)名稱的可選屬性。它的缺省值是 DefaultPartition。
u NodeAddress 是一個(gè)可選屬性,指定這個(gè)節(jié)點(diǎn)所綁定的IP地址。
u DeadlockDetection 是用來通知 Jgroups 為每個(gè)請(qǐng)求運(yùn)行消息死鎖檢測(cè)算法(message deadlock detection algorithms)的可選布爾值屬性。它的缺省值是 false。
u StateTransferTimeout 是用來指定跨群集的狀態(tài)復(fù)制(state replication)的超時(shí)時(shí)間(以毫秒為單位)的可選屬性。它的缺省值是 30000。
u PartitionConfig 是一個(gè)用來為這個(gè)群集(見Section 1, “JGroups 配置”) 指定 JGroup 配置選項(xiàng)的元素(element)。.
為了組成一個(gè)群集系統(tǒng),它們必須有剛好一樣的 PartitionName 和 ParitionConfig 元素。只改變其中一些而不是全部節(jié)點(diǎn)會(huì)導(dǎo)致群集的分離。通常來說,修改 ParitionConfig(即:地址/端口)而不是 PartitionName 來運(yùn)行多個(gè)群集系統(tǒng)會(huì)比較容易,因?yàn)楹笳咝枰谄渌渲梦募锏亩鄠€(gè)地方修改。然而,在 4.0.2+ 以后的版本里,修改 PartitionName 反而更方便了。因?yàn)槭褂昧?${jboss.partition.name} 屬性,它允許通過單個(gè)的 jboss.partition.name 系統(tǒng)屬性來修改群集系統(tǒng)的名字。

posted on 2011-08-07 13:48 w@ns0ng 閱讀(224) 評(píng)論(0) 編輯 收藏 所屬分類: jboss