多個Jboss端口沖突配置;一個Jboss多個server端口配置


JBoss啟動時默認發布的不同的服務需要開放一些端口,如果只是簡單地拷貝兩套JBoss或者在一個JBoss中啟動多個server配置的話,會由於端口沖突而導致JBoss無法啟動。

這時候我們肯定會想到手動去修改這些發生沖突的端口,可是Jboss需要修改的端口實在是太多,如下:

1. $JBoss_home/server/default/deploy/ejb3.deployer/META-INF/jboss-service.xml 修改3873端口的值;

2. $JBoss_home/server/default/deploy/jboss-web.deployer/server.xml 修改8080,8009,8443端口值。

3. $JBoss_home/server/default/conf/jboss-service.xml 修改8083,1098,1099,4444,4445,4446端口值

4. $JBoss_home/server/default/conf/jboss-minimal.xml 修改1099端口值,與3中保持一致。

5. $JBoss_home/server/default/deploy/jms/uil2-service.xml 修改8093端口值。

不過幸運的是JBoss提供了另外一種簡便的方法:Binding Manager服務,不需要繁瑣的端口配置就可以實現多實例(多個server)運行端口不沖突,詳細步驟如下: 

以JBoss 4.2.3 GA為例,假設server下有兩個不同的配置node1、node2(名字無所謂,default1、default1也行),%JBOSS_HOME%表示JBoss安裝目錄。

關鍵文件是%JBOSS_HOME%\docs\examples\binding-manager\sample-bindings.xml,該文件默認情況下定義了4組不同的端口配置(port-default、port-01、port-02、port-03),也就是說默認情況下支持同一台機器部署4個JBoss實例。

1、node2配置如下
修改node2/conf/jboss-service.xml文件,配置Service Binding(默認注釋掉)如下:

<mbean code="org.jboss.services.binding.ServiceBindingManager"
name="jboss.system:service=ServiceBindingManager">
<attribute name="ServerName">ports-01</attribute>
<attribute name="StoreURL">${jboss.home.url}/docs/examples/binding-manager/sample-bindings.xml</attribute>
<attribute name="StoreFactoryClassName">
org.jboss.services.binding.XMLServicesStoreFactory
</attribute>
</mbean

這里配置node2使用的是port-01端口配置。

2、node1配置如下
node1默認可以不用配置,正常啟動即可,這種情況下使用的是JBoss提供的默認端口8080、8009等,也可以參照第一步的配置,只需修改“ServerName”與node1不一樣即可,如ports-02,注意只能是在sample-bindings.xml中定義的四組端口范圍內

4、訪問地址
node1訪問地址:http://192.168.10.100:8080(默認不配置的情況)或者http://192.168.10.100:8280(使用port-02的情況)
node2訪問地址:http://192.168.10.100:8180(使用port-01的情況)

大家也許注意到端口的規律,默認情況下是8080,其它實例的端口依次在8080的基礎上增大100,對應關系如下:

port-default     8080
port-01          8180
port-02          8280
port-03          8380

當然其他端口如AJP協議端口8009也分別變成8109、8209、8309、8409,其它以此類推

5、注意事項
1)上述配置的前提是每個實例的server.xml中HTTP協議的端口配置均為默認的8080,若該端口修改過,則需要修改sample-bindings.xml中port-default中的默認8080端口為server.xml中HTTP協議端口。
2)上述方法也同樣適用於同一台機器上面部署多個JBoss的情況而不是同一個JBoss下多個配置。
3)一般情況下默認的4組端口足夠使用,若仍不夠,可自行添加其他port組。
4)若可能,仍是推薦不用的實例綁定到不同的IP地址上。

PS.

同一機器多JBoss實例常用場景:
1)32位JVM限制無法使用超過2G的內存,通過多實例可以充分利用服務器上大內存。
2)不用JBoss實例用於不同用途:開發環境、測試環境等。
3)希望在同一個機器上部署不同版本的JBoss。
4)希望在同一個機器上部署基於不同JVM的JBoss(不同應用對JVM要求不一樣的情況)。

 

一開始以為這個方法,只能應用於一個Jboss下配置多個server。測試發現,當時用兩個Jboss時,用這種方法也是可以的。所以Jboss還是很人性化的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM