톰캣 세션 클러스터링 구성
<tomcat session clustering without multicast>
톰캣 세션 클러스터링 관련 문서를 검색하던중 대부분의 레퍼런스 문서는 Multicast 기반의 구성으로 되어 있어, multicast가 지원되지 않는 환경에서 작업 하던 터라 multicast 가 아닌 방식으로 구성해 보았다.
참고 사이트 :
How To: CF11 Clustering without Multicast (AWS)
https://forums.adobe.com/thread/1548838
1. 구성
-. 2대의 머신
-. 각각 머신에 톰캣 한개씩 설치
2. Server.xml
1) mulitcast 사용시 아래 엘리먼트를 사용하였으나 해당 부분을 주석 처리한다.
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
2) 아래와 같이 StaticMembership 형태로 구성한다.
<Interceptor className="org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor">
<Member className="org.apache.catalina.tribes.membership.StaticMember"
port="4002"
host="172.31.33.220"
domain="delta-static"
uniqueId="{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}"
/>
</Interceptor>
- <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8" channelStartOptions="3">
- <Manager notifyListenersOnReplication="true" expireSessionsOnShutdown="false" className="org.apache.catalina.ha.session.DeltaManager"/>
- <Channel className="org.apache.catalina.tribes.group.GroupChannel">
- <!--<Membership port="45564" dropTime="3000" address="228.0.0.4" className="org.apache.catalina.tribes.membership.McastService" frequency="500"/>-->
- <Receiver port="4001" autoBind="100" address="auto" selectorTimeout="5000" maxThreads="6" className="org.apache.catalina.tribes.transport.nio.NioReceiver"/>
- <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
- <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
- </Sender>
- <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor"/> <!-- ADDED -->
- <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
- <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
- <Interceptor className="org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor">
- <Member className="org.apache.catalina.tribes.membership.StaticMember"
- port="4002"
- host="172.31.33.220"
- domain="delta-static"
- uniqueId="{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}"
- />
- </Interceptor>
- </Channel>
- <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
- <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
- <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
- <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
- </Cluster>