Collective Intelligence

[jBoss 6.3-eap] 동시에 여러개의 인스턴스 구성과 시작 스크립트 본문

개발/jBoss

[jBoss 6.3-eap] 동시에 여러개의 인스턴스 구성과 시작 스크립트

유경파 2016. 4. 1. 11:14

지금 검색을 해보니 jBoss EAP 는 7.0.0 Beta 까지 나와있다.

eap 6.3을 처음 구축할 때 이전 버전과 달라진 부분이 있어서 이리저리 찾아봤었는데 어느덧 시간은 흘러 버전이 또 올라가버렸다...

여튼 6.3 버전과는 구조상의 변화는 별로 없길 바라면서 여러개 인스턴스를 띄우는 방법을 적는다.


우선 jboss를 리눅스에 설치한 다음 그대로 쓰려면 jBoss_Home/standalone 폴더에 war파일을 올리고 bin 에 standalone.sh 를 실행하면 잘 돌아간다.


standalone 폴더에 여러개의 war를 넣으면 여러개의 인스턴스가 물론 잘 돌아간다.


하지만 하나의 서비스가 죽거나 에러가 발생하면 다른 서비스까지 영향을 받을 수 있다는 점,

설정도 공통으로 적용되니 따로따로 설정할 것이 있으면 오히려 더 복잡하다는 점 (포트를 다르게 쓰고 싶을때도 있지 않은가...),

각 인스턴스에 대한 권한 설정도 다르게 할 수 없는 점 등의 이유로 돌리고자 하는 인스턴스의 갯수만큼 폴더를 만들어 따로 실행하는 방법이 있다.


결론부터 말하자면 간단하게 jBoss_Home/standalone 폴더를 카피해서 원하는 이름으로 바꾸어 bin에서 각각의 start 스크립트를 만들어 주면 된다.

예를 들어 jBoss_Home/test 라는 폴더를 만들었으면 bin에서 start_test.sh 라는 파일을 다음과 같이 만들면 된다.





 nohup ./standalone.sh -Djboss.server.base.dir=/jboss-eap-6.3/test/ -Djboss.socket.binding.port-offset=100 1>/dev/null 2>&1 &




기존의 standalone.sh 를 그대로 사용하면서 설정만 바꿔준 것이다.


1. -Djboss.server.base.dir  : jboss가 실행되는 기본 폴더를 설정한다. 그래서 사실 아무~ 곳에나 폴더를 위치시킬 수 있다.


2. -Djboss.socket.binding.port-offset=100 : jBoss의 디폴트 포트에 여기서 정이한 값만큼 더해서 서버가 뜨게 된다. 디폴트는 8080이니 8180이 된다.


3. /dev/null 2>&1 : 기존 standalone.sh 를 실행시키면 같은 폴더내에 로그파일이 쌓이게 된다. 보통 로그파일은 따로 관리를 하므로 쓸데없이 용량만

                          차지않게 하기위해 설정하면 로그파일이 생성되지 않는다.


4. nohup & : 이 옵션 없이 스크립트를 시작하면 로그가 보이는데 빠져나오면 서버도 같이 죽어버린다. 스크립트 실행할 때 nohup ./stadalone.sh &


                  이런식으로 쓰기도 하는데 귀찮아서 그냥 박아두고 쓴다.