JBOSS5 集群配置(2011-01-17 13:43:51)
初始化安裝 在所有的服務(wù)器上安裝JBossAS 在服務(wù)器上安裝JBoss AS.最簡單的方法就是把下載的JBoss解壓縮出來就可以. 如果想要在一臺(tái)服務(wù)上運(yùn)行多個(gè)JBossAS實(shí)例,你可以把JBoss分別安裝在文件系統(tǒng)的不同位置,也可以僅拷貝all目錄下的配置內(nèi)容,例如JBoss的解壓目錄是/var/jboss,可以這樣做 cd /var/jboss/server cp -r all node1 cp -r all node2 在每個(gè)節(jié)點(diǎn),決定要綁定的IP地址 當(dāng)你運(yùn)行JBoss,不管是不是集群模式,你都需要告訴JBoss他需要綁定到哪個(gè)地址來進(jìn)行監(jiān)聽通訊(默認(rèn)地址是Localhost,這個(gè)地址比較安全但是不是特別有效,特別是在配置集群環(huán)境的時(shí)候),所以你需要確定使用什么地址。 保證多播可用 JBossAS默認(rèn)使用UDP多播來進(jìn)行集群服務(wù)器間通訊的,保證每個(gè)服務(wù)器所在的網(wǎng)絡(luò)內(nèi)的路由器、交換機(jī)都配置支持多播,如果你想要在一臺(tái)服務(wù)器上運(yùn)行多個(gè)節(jié)點(diǎn)服務(wù),那就需要保證當(dāng)前服務(wù)器系統(tǒng)的路由表中包含一個(gè)多播路由地址。可以參考介紹JGroups的文檔來了解多一些內(nèi)容,JGroups文檔地址http://www.。這里面還包含一些如何使用JGroup分析工具來判斷多播是否有效。 NOTE JBossAS集群不是必須使用UDP多播,它也可以配置成使用TCPunicast來進(jìn)行節(jié)點(diǎn)間交互。 為每個(gè)節(jié)點(diǎn)確定一個(gè)唯一的“ServerPeerID” JBoss消息集群需要這個(gè)唯一ID,如果不運(yùn)行JBoss消息的話就可以忽略這個(gè)配置(例如你可以將JBM從服務(wù)器配置的deploy目錄中移出)。JBM需要在每個(gè)節(jié)點(diǎn)又一個(gè)唯一的編號(hào)。 除了以上這些步驟,下面有兩個(gè)可選的步驟,用來幫助你確保你的集群同運(yùn)行在同一網(wǎng)絡(luò)中的其他的JBoss集群區(qū)分開來。 為你的集群取個(gè)唯一的名字 JBossAS集群的默認(rèn)名稱是”DefaultPartition”。為你的環(huán)境中的不同集群取不同的名稱。例如”QAPartition”或者”BobsDevPartition”。名稱中”Partition”的使用不是必須的。如果從效率考慮最好短一些,因?yàn)樗鼘⒈话谒屑簝?nèi)交互的消息中。 為你的集群選擇一個(gè)唯一的多播地址 JBossAS默認(rèn)使用UDP多播放時(shí)來進(jìn)行節(jié)點(diǎn)間交互。為你使用的每個(gè)群選擇一個(gè)為一個(gè)的多播地址。一個(gè)好的多播地址是類似239.255.x.y的方式。http:/ /www./docs/THPM/multicast-address-assignment.html [http://www./ docs/THPM/multicast-address-assignment.html]將為你提供如果選擇好的多播地址的建議。 也可以參考Section 10.2.2, “Isolating JGroups Channels”來尋找更多的建議 將JBossAS以集群方式加載 在局域網(wǎng)環(huán)境中以集群方式啟動(dòng)JBossAS的最簡單方式就是使用 “–c all”參數(shù)來啟動(dòng)服務(wù)實(shí)例。這些服務(wù)器實(shí)例會(huì)自動(dòng)組成一個(gè)集群。 讓我們看一些不同情況下的安裝方法。在每個(gè)情況下我們都只創(chuàng)建一個(gè)有兩個(gè)節(jié)點(diǎn)的集群,第一個(gè)節(jié)點(diǎn)的”ServerPeerID”是1,第二個(gè)節(jié)點(diǎn)的是2。我們把我們的群命名為”DocsPartition”,使用239.255.100.100這個(gè)多播地址。兩個(gè)節(jié)點(diǎn)的群不代表是各種情況下的最優(yōu)選擇,他僅僅是完成這個(gè)例子的最簡單的配置。 場景1:各節(jié)點(diǎn)在不同機(jī)器上 這是最常見的使用場景。假設(shè)兩臺(tái)機(jī)器分別叫做”node1”與”node2”,node1的地址是192.168.0.101,node2的地址是192.168.0.102,他們的”ServerPeerID”分別是1和2。假設(shè)這兩個(gè)機(jī)器得Jboss都裝在/var/jobss目錄下 節(jié)點(diǎn)1加載過程 Cd /var/jboss/bin ./run.sh –c all –g DocsPartition –u 239.255.100.100 \ -b 192.168.0.101 –Djboss.messaging.ServerPeerID=1 節(jié)點(diǎn)2只有-b參數(shù)與ServerPeerID參數(shù)不同 Cd /var/jboss/bin ./run.sh –c all –g DocsPartition –u 239.255.100.100 \ -b 192.168.0.102 –Djboss.messaging.ServerPeerID=2 參數(shù)-c使用all配置項(xiàng),該配置項(xiàng)包含集群的配置項(xiàng),參數(shù)-g設(shè)置集群的名稱。參數(shù)-u設(shè)置集群內(nèi)節(jié)點(diǎn)交互的多播地址。參數(shù)-b設(shè)置需要綁定的地址,參數(shù)-D設(shè)置系統(tǒng)屬性jboss.messaging.ServerPeerId的值,JBoss消息需要這個(gè)值在群中要求唯一。 場景2:在單臺(tái)有兩個(gè)IP地址的服務(wù)器上搭建2個(gè)節(jié)點(diǎn) 在同一臺(tái)設(shè)備上運(yùn)行多個(gè)節(jié)點(diǎn)這在開發(fā)環(huán)境中是經(jīng)常出現(xiàn)的。在這種情況下,該服務(wù)器有多個(gè)地址,例如IP地址,這樣就可以讓多個(gè)JBoss實(shí)例分別綁定到不同的地址上,防止在地址綁定時(shí)出現(xiàn)端口沖突的問題。 假設(shè)這個(gè)服務(wù)器被分配了192.168.0.101和192.168.0.102兩個(gè)地址。與場景1不同,我們需要保證每個(gè)AS實(shí)例都需要有自己的工作區(qū)域。所以不能使用all配置項(xiàng),我們使用node1與node2配置項(xiàng),這兩個(gè)都是從all中拷貝過來的。 打開一個(gè)控制窗口運(yùn)行第一個(gè)實(shí)例: cd /var/jboss/bin ./run.sh –c node1 –g DocsPartition –u 239.255.100.100 \ -b 192.168.0.101 –Djboss.messaging.ServerPeerID=1 節(jié)點(diǎn)2只有-b參數(shù)與-c參數(shù)不同,同時(shí)ServerPeerID的值不同 Cd /var/jboss/bin ./run.sh –c node2 –g DocsPartition –u 239.255.100.100 \ -b 192.168.0.102 –Djboss.messaging.ServerPeerID=2 場景3:在一臺(tái)只有一個(gè)地址的服務(wù)器上安裝兩個(gè)節(jié)點(diǎn)實(shí)例 這個(gè)與場景2類似,不同時(shí)著臺(tái)機(jī)器只有一個(gè)地址。兩個(gè)實(shí)例不能同時(shí)綁定到到同一個(gè)地址和端口,所以我們需要通知JBoss啟動(dòng)實(shí)例時(shí)綁定不同的端口??梢酝ㄟ^配置jboss.service.binding.set系統(tǒng)參數(shù)來配置,這個(gè)參數(shù)由ServiceBindingManager服務(wù)提供。 打開一個(gè)控制窗口運(yùn)行第一個(gè)實(shí)例: cd /var/jboss/bin ./run.sh –c node1 –g DocsPartition –u 239.255.100.100 \ -b 192.168.0.101 –Djboss.messaging.ServerPeerID=1 \ -Djboss.service.binding.set=ports-default 節(jié)點(diǎn)2: cd /var/jboss/bin ./run.sh –c node2 –g DocsPartition –u 239.255.100.100 \ -b 192.168.0.102 –Djboss.messaging.ServerPeerID=2 -Djboss.service.binding.set=ports-01 這樣可以通知ServiceBindingManager在第一個(gè)節(jié)點(diǎn)使用默認(rèn)端口(例如JNDI在1099)。第二個(gè)節(jié)點(diǎn)使用”prots-01”綁定設(shè)置,默認(rèn)是在各個(gè)默認(rèn)端口的基礎(chǔ)上累加100(例如JNDI在1199)。可以從conf/bootstrap/bindings.xml文件中看到更多的ServiceBindingManager配置項(xiàng)。 |
|