본문 바로가기
tomcat

Tomcat Session Clustering without multicast

by thecoke 2015. 1. 22.

톰캣 세션 클러스터링 구성

 <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>  


  1. <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8" channelStartOptions="3">  
  2.         <Manager notifyListenersOnReplication="true" expireSessionsOnShutdown="false" className="org.apache.catalina.ha.session.DeltaManager"/>  
  3.         <Channel className="org.apache.catalina.tribes.group.GroupChannel">  
  4.           <!--<Membership port="45564" dropTime="3000" address="228.0.0.4" className="org.apache.catalina.tribes.membership.McastService" frequency="500"/>-->  
  5.           <Receiver port="4001" autoBind="100" address="auto" selectorTimeout="5000" maxThreads="6" className="org.apache.catalina.tribes.transport.nio.NioReceiver"/>  
  6.           <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">  
  7.             <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>  
  8.           </Sender>  
  9.           <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor"/> <!-- ADDED -->  
  10.           <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>  
  11.           <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>  
  12.           <Interceptor className="org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor">  
  13.                 <Member className="org.apache.catalina.tribes.membership.StaticMember"  
  14.                   port="4002"  
  15.                   host="172.31.33.220"  
  16.                   domain="delta-static"  
  17.                   uniqueId="{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}"  
  18.                 />  
  19.           </Interceptor>  
  20.         </Channel>  
  21.         <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>  
  22.         <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>  
  23.         <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>  
  24.         <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>  
  25.       </Cluster>