Jboss 5.1.0 클러스터 구성

7405 단어 jboss집단
준비
JBOSS 5.1.0 다운로드, JBOSS_ 구성HOME, JAVA_HOME 환경 변수 및 $JBOSS_PATH 환경 변수에 HOME/bin을 추가합니다.본고는 두 대의 서버인 IP가 각각 10.123.76.103과 10.123.76.104에 두 대의 Jboss 응용 서버를 배치하고자 한다.또한 세 번째 서버에 Apache 2.2 서버를 설치하고 환경 변수 APACHE_ 구성HOME
2. 구성
1) 종속 패키지 복사 및 관련 디렉터리 만들기
cp jboss-5.1.0.GA/server/all/lib/hibernate-jbosscache2.jar $JBOSS_HOME/server/default/lib/
cp jboss-5.1.0.GA/server/all/lib/jbosscache-core.jar $JBOSS_HOME/server/default/lib/
cp jboss-5.1.0.GA/server/all/lib/jbosscache-pojo.jar $JBOSS_HOME/server/default/lib/
cp jboss-5.1.0.GA/server/all/lib/jgroups.jar $JBOSS_HOME/server/default/lib/
cp jboss-5.1.0.GA/server/all/lib/avalon-framework.jar  $JBOSS_HOME/server/default/lib/
cp jboss-5.1.0.GA/server/all/lib/jacorb.jar $JBOSS_HOME/server/default/lib/

cp -rf jboss-5.1.0.GA/server/all/deploy/cluster  $JBOSS_HOME/server/default/deploy/
mkdir $JBOSS_HOME/server/default/deploy-hasingleton 

cp jboss-5.1.0.GA/server/all/deploy/quartz-ra.rar $JBOSS_HOME/server/default/deploy/
cp jboss-5.1.0.GA/server/all/deploy/mail-ra.rar $JBOSS_HOME/server/default/deploy/

2) $JBOSS_ 열기HOME/server/default/deploy/messaging/messaging-service.xml 파일,
<attribute name="ServerPeerID">${jboss.messaging.ServerPeerID:0}</attribute>

... 로 바꾸다
<attribute name="ServerPeerID">${jboss.messaging.ServerPeerID:1}</attribute>

다른 서버 구성은 다음과 같이 변경되었습니다.
<attribute name="ServerPeerID">${jboss.messaging.ServerPeerID:2}</attribute>

더 많은 서버도 이렇게 설정합니다.주의해야 할 것은 서로 다른 서버 노드의 이 ServerPeerID 수치는 중복될 수 없다는 것이다. 
 
참고: messaging 폴더가 없으면 $JBOSS_부터HOME/all에서 관련 파일 복사
cp -rf jboss-5.1.0.GA/server/all/deploy/messaging $JBOSS_HOME/server/default/deploy/
cp jboss-5.1.0.GA/server/all/deploy/jms-ra.rar $JBOSS_HOME/server/default/deploy/

3) ${JBOSS_HOME}/server/default/deployers/jbossweb을 엽니다.deployer/META-INF/war-deployers-jboss-beans.xml 파일, false 부근의 주석을 제거하고
<!--  mod_jk   -->
<property name="useJK">true</property>
<!--  session, true -->
<property name="useSessionPassivation">true</property>
<property name="passivationMaxIdleTime">-1</property>  
<property name="passivationMinIdleTime">-1</property>

주: 이 프로필에서session의 복사 모드를 수정할 수 있습니다.자세한 내용은 jboss 공식 문서를 참고하십시오.
4) 클러스터링이 필요한 Java 웹 애플리케이션의 웹을 엽니다.xml 파일, 전에 태그 추가
모든 Java 웹 응용 프로그램에 클러스터링이 필요한 경우 $JBOSS_HOME/server/default/deployers/jbossweb.deployer/web.xml에 태그 추가
5) $JBOSS_ 열기HOME/server/default/deploy/jbossweb.sar/server.xml,
<Engine name="jboss.web" defaultHost="localhost">

... 로 바꾸다
<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1">

다른 기계 설정은
<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node2">

또한 ... 속성 추가 connectionTimeout = "60000"더 많은 서버도 마찬가지입니다.jvmRoute 값은 반복할 수 없습니다.
ps: 로컬에 두 대의 JBOSS 서버를 배치하면 프로필을 수정해야 합니다 $JBOSS_HOME/server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml, 감청 포트를 엇갈리게 합니다. 
클러스터가 지정된 IP를 통해 통신하려면 $JBOSS_ 열기HOME\server\all\deploy\cluster\jgroups-channelfactory.sar\META-INF\jgroups-channelfactory-stacks.xml,
<TCPPING timeout="3000" initial_hosts="${192.168.1.104[7810],192.168.1.106[7810]}" port_range="1" num_initial_members="3"/>

그중 104는 본 기기의 Node IP 주소이고, 106은 다른 기기의 Node IP 주소이다
다른 기계는
<TCPPING timeout="3000" initial_hosts="${192.168.1.106[7810],192.168.1.104[7810]}"                      port_range="1" num_initial_members="3"/>
더 많은 서버도 구성과 같다
6) Apache용 mod_ 구성jk 커넥터
$APACHE_ 열기HOME/conf/httpd.conf, 다음 구성을 추가합니다.
# mod_jk
LoadModule jk_module modules/mod_jk.so

#
# Configure mod_jk
#
# 
JkWorkersFile conf/workers.properties
JkMountFile conf/uriworkermap.properties
JkLogFile logs/mod_jk.log
JkLogLevel warn
# JkMount /* loadbalancer

$APACHE_HOME/conf 디렉토리에 작업자를 만듭니다.properties 파일, 내용:
# Define list of workers that will be used
# for mapping requests
worker.list=loadbalancer,status
# Define Node1
# modify the host as your host IP or DNS name and your AJP 1.3 port
worker.node1.port=6009
worker.node1.host=10.123.76.103
worker.node1.type=ajp13
worker.node1.lbfactor=1
worker.node1.socket_timeout=60
worker.node1.connection_pool_timeout=60
worker.node1.ping_mode=A
worker.node1.ping_timeout=20000
worker.node1.connect_timeout=20000

# Define Node2
# modify the host as your host IP or DNS name and your AJP 1.3 port
worker.node2.port=7009
worker.node2.host=10.123.76.104
worker.node2.type=ajp13
worker.node2.lbfactor=1
worker.node2.socket_timeout=60
worker.node2.connection_pool_timeout=60
worker.node2.ping_mode=A
worker.node2.ping_timeout=20000
worker.node2.connect_timeout=20000

# Load-balancing behaviour
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2
worker.loadbalancer.sticky_session=true
worker.loadbalancer.sticky_session_force=false

# Status worker for managing load balancer
worker.status.type=status

주의: jboss 서버의 IP와 연결 포트는 jbo의 성명과 일치해야 합니다. 
$APACHE_HOME/conf 디렉터리에 uriworkermap을 만듭니다.properties, 내용:
#  ( gif,jpg,css )  apache , , jboss , , jboss 
!/*.gif=loadbalancer
!/*.jpg=loadbalancer
!/*.png=loadbalancer
!/*.css=loadbalancer
!/*.js=loadbalancer
!/*.htm=loadbalancer
!/*.html=loadbalancer
!/*.ico=loadbalancer

/*=loadbalancer

테스트
jsp 페이지를 작성합니다. 이 jsp 페이지는session에서 브라우저마다 이 페이지에 접근하는 횟수를 기록합니다.두 대의 jboss 응용 서버에 방문해서session이 복제되었는지 확인하고apache 전방 서버를 통해 방문 후기를 시도합니다
하면, 만약, 만약...세션의 값은true입니다. 세션이'점성'을 가지고 있음을 나타냅니다.'점성'은 사용자가 브라우저 A를 통해 jboss 1과 세션을 시작하면 나중에 사용자가 브라우저 A에서 보내는 요청이 같은 세션에 있으면 부하 평형기가 Tomcat 1로 하여금 요청을 처리하게 하는 것을 의미한다.직관적으로 이해하면 하나의 세션이 시종 집단 시스템의 Jboss 서버와 붙어 있다고 생각할 수 있다.당sticky_세션의 값이true일 때 그룹 시스템은 세션 복사를 하지 않습니다.그룹 시스템이 세션 복사를 해서 브라우저가 여러 Tomcat 서버와 같은 세션을 펼칠 수 있도록 하려면 sticky_session은false(${JBOSS_HOME}\server\default\deployers\jbossweb.deployer\META-INF\war-deployers-jboss-beans.xml의useSessionPassivation 속성을false로 설정합니다.sticky_session의 기본값은true입니다.
당sticky_session이false로 설정되었을 때 sticky_session_force는 집단 시스템에 아무런 영향을 미치지 않습니다. 보통 기본값false로 설정할 수 있습니다.당sticky_session이true로 설정되면 sticky_session_force도true로 설정합니다.
또한 점성session의 배치는 실제적으로 자원을 소모하지만 안정성을 요구하는 일부 시스템은 반드시 이렇게 해야 한다. 또한 이상의 오류 수정 조치보다 훨씬 엄격하고 은행 시스템이 특히 뚜렷하다!일반적으로 고객이 은행 클라이언트를 사용할 때 항상 처리가 너무 느리다고 불평하는데 속도, 자원을 희생하고 안정적이고 믿음직하며 안전을 유지했다.
가정sticky_session은true로 설정됩니다. 브라우저가 그룹 시스템의 Jboss1 서버와 붙어 세션을 펼친 후 이 Jboss1 서버가 이상으로 종료되면 어떤 상황이 발생합니까?하면, 만약, 만약...session_force가true이면 서버 측에서 클라이언트에게 상태 코드가 500인 오류를 되돌려줍니다.하면, 만약, 만약...session_false입니다. 부하 평형기는 그룹 시스템의 다른 Jboss2 서버에 요청을 전송합니다. 만약에 Jboss2 서버에 같은 세션의 정보가 존재하지 않는다면 웹 구성 요소가 세션의 관련 데이터에 접근하려고 할 때 이상이 발생할 수 있습니다.
참고 자료:http://suhuanzheng7784877.iteye.com/blog/968913

좋은 웹페이지 즐겨찾기