https://tomcat.apache.org/tomcat-9.0-doc/config/cluster-membership.html
1. server.xml에서 Engine 또는 Host 태그 내부에 Cluster 설정
Engine에 배치 : 톰캣의 모든 가상 호스트에서 클러스터링을 지원하고 메시징 구성 요소를 공유
클러스터는 각 세션 관리자의 호스트 이름을 관리자 이름에 추가하여 이름은 같지만 두 개의 다른 호스트 내에 있는 두 개의 컨텍스트를 구별할 수 있다
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8"
channelStartOptions="3">
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="192.168.56.101"
port="3100"
autoBind="0"
maxThreads="6"
selectorTimeout="5000" />
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor" staticOnly="true"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor">
<Member
className="org.apache.catalina.tribes.membership.StaticMember"
port="3100"
host="192.168.56.102"
uniqueId="{0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2}" />
</Interceptor>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif|.*\.js|.*\.jpeg|.*\.jpg|.*\.png|.*\.htm|.*\.html|.*\.css|.*\.txt"/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
<Engine>
jvmRoute : 사용 was 이름
각 JSESSION_ID의 끝에 tag를 붙이고자 한다면 jvmRoute 요소를 추가
ex) <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
=> 5364B126FE79474FE1CA714D4D104825.tomcat1
<Cluster>
channelStartOptions="3" : 멀티캐스트 사용 x
<Receiver>
address : 현재 장비 ip
port : 수신 port
<Member>
port : 클러스터링할 대상 서버의 수신 port
host : 클러스터링할 대상 서버의 ip
uniqueId : 정적 멤버에 대한 uniqueId. 값은 문자열 형식의 16바이트 배열
ex) {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}
!! Interceptor는 위의 순서대로 작성해야 에러가 발생하지 않는다
2. web.xml 설정
</web-app> 태그 안에 <distributable/> 태그를 추가
<web-app>
<distributable/>
</web-app>
'WAS > TOMCAT' 카테고리의 다른 글
6. tomcat 클러스터링 2 (0) | 2023.07.24 |
---|---|
4. Connector 속성 정의 (server.xml) (0) | 2023.07.14 |
3. 서비스 포트 변경 (0) | 2023.07.14 |
2. JAVA 버전 변경 (0) | 2023.07.14 |
1. 설치 및 버전 확인 (0) | 2023.07.14 |