在一台服務其上啟動多個Jboss服務,連接埠會出現衝突,如果修改一個一個修改預設連接埠的話,會比較複雜;為此Jboss提供了一種統一管理多個執行個體的方法(ServiceBindingManager),基本思想是jboss提供一個伺服器連接埠繫結檔案--xxx-bindings.xml,裡面定義了多個以server-name為標誌的連接埠,它就作為統一的連接埠綁定設定檔。然後在每個伺服器執行個體的jboss-server.xml中註冊一個連接埠綁定服務ServiceBindingManager,該服務用參數:
ServerName:指定xxx-bindings.xml對應的連接埠配置
StoreURL: 指定xx-bindings.xml檔案的位置
一旦該服務註冊,則Tomcat下server.xml的連接埠設定被忽略,而啟用新的連接埠配置。
實施步驟:
1.拷貝docs\examples\binding-manager\sample-bindings.xml的檔案到server下,重新命名為server-bindings.xml,檔案裡面已經內建了4個server的連接埠綁定,因此在預設情況下,你至少可以啟用4個jboss服務執行個體。
2.在jboss\server\default\conf\jboss-service.xml檔案中,查詢到
<mbean code="org.jboss.services.binding.ServiceBindingManager"
name="jboss.system:service=ServiceBindingManager">
<attribute name="ServerName">ports-01</attribute>
<attribute name="StoreURL">${jboss.home.url}/server/cod-bindings.xml</attribute>
<attribute name="StoreFactoryClassName">
org.jboss.services.binding.XMLServicesStoreFactory
</attribute>
</mbean>
將注釋去除,並修改name=ServerName值,值包括posts-default,posts-01,posts-02,posts-03.
在cod-bindings.xml可以查詢到ports-01的連接埠值(如果檔案不存在,請拷貝同版本到相應目錄)。
3. 啟動各個服務執行個體。 run.bat -c default:
./run.sh -c default -b 0.0.0.0
後台啟動:nohup ./run.sh -c default -b 0.0.0.0 > /dev/null &