JBoss multiple instance

2018. 8. 21. 16:08공유

반응형

한 서버에서 여러 JBoss instance를 동시에 운영하려면 각 JBoss instance를 다른 ip에 바인딩하거나 JBoss instance가 사용하는 port를 변경하여야 한다.

 

JBoss에서는 port를 쉽게 변경할 수 있도록 서비스 바인딩 관리자를 제공하는데, 이에 대한 설정은 각 instance의 conf/jboss-service.xml 파일에 있다.

 

해당 파일을 살펴보면 ServiceBindingManager MBean이 코멘트 처리 되어 있음을 볼 수 있다.

서비스 바인딩 관리자를 사용하기 위해서는 이 코멘트를 해제해준다.

 

 $JBOSS_HOME/server/<instance>/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}/docs/examples/binding-manager/sample-bindings.xml</attribute>
     <attribute name="StoreFactoryClassName">
       org.jboss.services.binding.XMLServicesStoreFactory
     </attribute>
  </mbean>

 

 

StoreURL은 서비스 바인딩 설정 파일의 위치를 명시한다. 기본으로 설정된 sample-bindings.xml을 그대로 사용하면 된다.

 

ServerName은 서비스 바인딩 설정 파일에 명시된 server name을 지정한다. sample-bindings.xml에는 ports-default, ports-01, ports-02, ports-03 총 4개의 server가 미리 설정되어 있다. 각 JBoss  instance 마다 서로 다른 ServerName을 설정해야 하므로 sample-bidning.xml을 사용하면 총 4개의 JBoss instance를 동시에 운영할 수 있다.

 

sample-bindings.xml에 설정된 각 server별 주요 서비스 포트는 다음과 같다.

 

ports-default

 ports-01

 ports-02

 ports-03

 JNDI

 1099

 1199

 1299

 1399

 HA-JNDI

 1100

 1200

 1300

 1400

 HTTP

 8080

 8180

 8280

 8380

 AJP

 8009

 8109

 8209

 8309

 

 

(*) 주의사항

  jboss-web.deployer/server.xml 파일에서 직접 Connector의 port를 변경한 경우 서비스 바인딩 파일에 설정된 포트로 오버라이딩 되지 않는다. sample-bindings.xml 파일을 보면 바로 의문이 풀리는데 8080, 8443, 8009 port를 사용하는 Connector만을 변경하고 있다.

 

참고 URL

http://wiki.jboss.org/wiki/Wiki.jsp?page=ConfiguringMultipleJBossInstancesOnOneMachine

반응형