개발하는 너구리

Tomcat 세션 클러스터링 설정 본문

JAVA/Tomcat

Tomcat 세션 클러스터링 설정

전투너구리 2015. 11. 3. 13:10

기본적으로 Tomcat 은 세가지 세션관리자를 제공한다. 

 

 Standard Manager

 기본 세션 관리자

 Persistant Manager

 File Store, JDBC Store

 Delta Manager

 multicast 방식
 수신 그룹에 등록된 모든 서버에 세션 복제

 Backup Manager

 Delta Manager 와 같으나 ,
 1대의 서버에 대해서만 백업

 

세션 클러스터링 설정 방법

 

1. Multicast Routing 설정

 

route add -net 224.0.0.0 net netmask 244.0.0.0 dev eth0

 

 

2. server.xml 설정

 

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">
 <Manager className="org.apache.catalina.ha.session.BackupManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>
    <Channel className="org.apache.catalina.tribes.group.GroupChannel">
        <Membership className="org.apache.catalina.tribes.membership.McastService"
            address="228.0.0.4"
            port="45564"
            frequency="500"
            dropTime="3000"/>

        <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="auto"
   port="4001"  <!-- 한 서버에 여러 Tomcat를 구동할 경우 Port 번호를 다르게 설정 -->
   autoBind="100"
   selectorTimeout="5000"
   maxThreads="6"/>

  <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
  <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
 </Channel>

 <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
 <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.JvmRouteSessionIDBinderListener"/>
 <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>

 

3. wb.xml  설정

 

<distributable />

 

 

4. 확인

 

정보: Replication member added:org.apache.catalina.tribes.membership.MemberImpl[tcp://{127, 0, 0, 1}:4000,{127, 0, 0, 1},4000, alive

=5012, securePort=-1, UDP Port=-1, id={31 -5 48 -9 -27 64 79 67 -81 49 -44 96 -87 -84 -115 -121 }, payload={}, command={}, domain={}
, ]