Knight of the round table

          wansong

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

          JBoss企業(yè)級(jí)應(yīng)用服務(wù)平臺(tái)群集指南(一)
          2008-03-08 09:39:43
          標(biāo)簽:jboss 群集
          版權(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)”, 展示了網(wǎng)絡(luò)里的 JBoss 服務(wù)器實(shí)例被分到三個(gè)群集系統(tǒng)里,有的群集系統(tǒng)只有一個(gè)節(jié)點(diǎn)。在任何時(shí)候,你都可以在群集里加入或刪除節(jié)點(diǎn)。
           
           
                                          圖 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è)群集也將被刪除。
           
          下例展示了標(biāo)準(zhǔn) JBoss AS 發(fā)行版本里的 MBean 的定義。如果你在本地網(wǎng)絡(luò)里用缺省的群集設(shè)定來啟動(dòng) JBoss 服務(wù)器,你將得到一個(gè)叫 DefaultPartition 的缺省群集,它包括了所有作為節(jié)點(diǎn)的服務(wù)器實(shí)例。
          在這里,我們忽略了這個(gè)群集的詳細(xì)的 JGroups 協(xié)議配置(protocal configuration)。JGroups 處理節(jié)點(diǎn)之間底層的點(diǎn)到點(diǎn)通信,我們將在 Section 1, “JGroups配置”里討論它的配置。下面的列表展示了 ClusterPartition MBean 里可用的配置屬性。
           
          PartitionName 是用來指定節(jié)點(diǎn)名稱的可選屬性。它的缺省值是 DefaultPartition。
          NodeAddress 是一個(gè)可選屬性,指定這個(gè)節(jié)點(diǎn)所綁定的IP地址。
          DeadlockDetection 是用來通知 Jgroups 為每個(gè)請(qǐng)求運(yùn)行消息死鎖檢測(cè)算法(message deadlock detection algorithms)的可選布爾值屬性。它的缺省值是 false。
          StateTransferTimeout 是用來指定跨群集的狀態(tài)復(fù)制(state replication)的超時(shí)時(shí)間(以毫秒為單位)的可選屬性。它的缺省值是 30000。
          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)的名字。
           
          你可以用瀏覽器訪問群集系統(tǒng)里的任何 JBoss 實(shí)例的 JMX 控制臺(tái)來查看當(dāng)前的群集信息(如,[url]http://hostname:8080/jmx-console/[/url]),點(diǎn)擊 jboss:service=DefaultPartition MBean(如果這個(gè)節(jié)點(diǎn)沒有加入 DefaultPartition,你可以改變 MBean 名來反映群集名)。CurrentView 字段會(huì)顯示當(dāng)前群集的 IP 地址的列表。

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

          主站蜘蛛池模板: 盐城市| 绿春县| 涡阳县| 东乌| 沭阳县| 恭城| 雷州市| 琼中| 集贤县| 崇州市| 鹤峰县| 山东| 永新县| 富源县| 龙口市| 辰溪县| 达日县| 肥乡县| 荃湾区| 运城市| 容城县| 敦煌市| 长兴县| 镶黄旗| 澄城县| 汝南县| 云南省| 柯坪县| 久治县| 濉溪县| 金昌市| 江山市| 蓝田县| 大余县| 宣恩县| 刚察县| 晋城| 武乡县| 芦溪县| 寿光市| 麻江县|