Knight of the round table

          wansong

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

          JBoss企業(yè)級應(yīng)用服務(wù)平臺群集指南(一)
          2008-03-08 09:39:43
          標(biāo)簽:jboss 群集
          版權(quán)聲明:原創(chuàng)作品,如需轉(zhuǎn)載,請與作者聯(lián)系。否則將追究法律責(zé)任。

          1.集群

          ——用JBoss群集實現(xiàn)高可用性企業(yè)服務(wù)

          1.1 前言

          群集系統(tǒng)(Clustering)允許我們在多臺平行的服務(wù)器(群集節(jié)點(diǎn))上運(yùn)行一個應(yīng)用程序。負(fù)載分布在不同的服務(wù)器上,即使其中任何一臺崩潰,應(yīng)用程序還是可以在其他群集節(jié)點(diǎn)(cluster nodes)上運(yùn)行。群集對于可擴(kuò)展性企業(yè)級應(yīng)用程序是很關(guān)鍵的,因為你簡單地把更多節(jié)點(diǎn)加入到群集系統(tǒng)里就可以提高性能。
          JBoss 應(yīng)用服務(wù)器(AS)缺省支持群集系統(tǒng)。最簡單的啟動 JBoss 服務(wù)器群集的方法就是在同一本地網(wǎng)絡(luò)里啟動多個 JBoss 實例,每個實例都可以用 run -c all 命令來運(yùn)行。這些按照 all 配置文件啟動的實例,可以檢測到對方而自動組成一個群集系統(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)是一個 JBoss 服務(wù)器實例。因此,為了建立一個群集,JBoss 實例必須組合在一起(通稱"partition")。在同一個網(wǎng)絡(luò)里,我們可能有不同的群集。為了區(qū)分,每個群集都必須有一個唯一的名字。
           
          圖1.1“集群服務(wù)節(jié)點(diǎn)”, 展示了網(wǎng)絡(luò)里的 JBoss 服務(wù)器實例被分到三個群集系統(tǒng)里,有的群集系統(tǒng)只有一個節(jié)點(diǎn)。在任何時候,你都可以在群集里加入或刪除節(jié)點(diǎn)。
           
           
                                          圖 1.1. 集群和服務(wù)節(jié)點(diǎn)
            
          每個 JBoss 服務(wù)器實例(節(jié)點(diǎn))在 deploy/cluster-service.xml 文件的 ClusterPartition MBean 里指定了它所加入的群集(也就是 partition)。所有具有相同 ClusterPartition MBean 配置的節(jié)點(diǎn)加入到同一個群集系統(tǒng)里。因此,如果你想把同一個網(wǎng)絡(luò)里的 JBoss 節(jié)點(diǎn)分開到兩個群集里,你可以使用兩個不同的 ClusterPartition MBean 配置,每個節(jié)點(diǎn)可以根據(jù)它所需要加入的群集來選擇其中一個配置。如果節(jié)點(diǎn)啟動的時候,它指定的群集不存在,這個群集將被創(chuàng)建。相同地,當(dāng)群集系統(tǒng)的所有節(jié)點(diǎn)都被刪除后,這個群集也將被刪除。
           
          下例展示了標(biāo)準(zhǔn) JBoss AS 發(fā)行版本里的 MBean 的定義。如果你在本地網(wǎng)絡(luò)里用缺省的群集設(shè)定來啟動 JBoss 服務(wù)器,你將得到一個叫 DefaultPartition 的缺省群集,它包括了所有作為節(jié)點(diǎn)的服務(wù)器實例。
          在這里,我們忽略了這個群集的詳細(xì)的 JGroups 協(xié)議配置(protocal configuration)。JGroups 處理節(jié)點(diǎn)之間底層的點(diǎn)到點(diǎn)通信,我們將在 Section 1, “JGroups配置”里討論它的配置。下面的列表展示了 ClusterPartition MBean 里可用的配置屬性。
           
          PartitionName 是用來指定節(jié)點(diǎn)名稱的可選屬性。它的缺省值是 DefaultPartition。
          NodeAddress 是一個可選屬性,指定這個節(jié)點(diǎn)所綁定的IP地址。
          DeadlockDetection 是用來通知 Jgroups 為每個請求運(yùn)行消息死鎖檢測算法(message deadlock detection algorithms)的可選布爾值屬性。它的缺省值是 false。
          StateTransferTimeout 是用來指定跨群集的狀態(tài)復(fù)制(state replication)的超時時間(以毫秒為單位)的可選屬性。它的缺省值是 30000。
          PartitionConfig 是一個用來為這個群集(Section 1, “JGroups 配置”) 指定 JGroup 配置選項的元素(element)。.
           
          為了組成一個群集系統(tǒng),它們必須有剛好一樣的 PartitionName 和 ParitionConfig 元素。只改變其中一些而不是全部節(jié)點(diǎn)會導(dǎo)致群集的分離。通常來說,修改 ParitionConfig(即:地址/端口)而不是 PartitionName 來運(yùn)行多個群集系統(tǒng)會比較容易,因為后者需要在其他配置文件里的多個地方修改。然而,在 4.0.2+ 以后的版本里,修改 PartitionName 反而更方便了。因為使用了 ${jboss.partition.name} 屬性,它允許通過單個的 jboss.partition.name 系統(tǒng)屬性來修改群集系統(tǒng)的名字。
           
          你可以用瀏覽器訪問群集系統(tǒng)里的任何 JBoss 實例的 JMX 控制臺來查看當(dāng)前的群集信息(如,[url]http://hostname:8080/jmx-console/[/url]),點(diǎn)擊 jboss:service=DefaultPartition MBean(如果這個節(jié)點(diǎn)沒有加入 DefaultPartition,你可以改變 MBean 名來反映群集名)。CurrentView 字段會顯示當(dāng)前群集的 IP 地址的列表。

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

          主站蜘蛛池模板: 远安县| 龙川县| 连南| 凤凰县| 鹿泉市| 诏安县| 高要市| 石阡县| 湖口县| 天全县| 五华县| 荣昌县| 罗甸县| 九台市| 项城市| 沙坪坝区| 娄烦县| 阜阳市| 神农架林区| 衡东县| 津市市| 德清县| 溧水县| 靖江市| 呼和浩特市| 乐安县| 舞钢市| 舒城县| 临西县| 玛曲县| 湖南省| 喀喇沁旗| 乌苏市| 陆丰市| 耿马| 平阴县| 仙游县| 庆阳市| 正定县| 绥化市| 桂阳县|