티스토리 뷰

Springboot 내장 톰캣을 사용할때 session clustering에 대해서 글을 썼는데 역순으로 글을 쓰는것 같다. 이 글을 쓸때 이미 구성되어 있는 Tomcat server.xml 의 clustering 부분을 가져다가 썼는데 그것에 대해 기술을 해보려고 한다. 


web.xml - application 단에서 설정해준다.

<web-app ~~~>
  ... 생략 ...
  <distributable/>
</web-app>

 

server.xml - tomcat 의 설정

<Server port="8105" shutdown="SHUTDOWN">
... 생략 ...
  <Service name="Catalina">
  ... 생략 ...
   <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
   ... 생략 ...
   
    <!-- Cluster 부분 주석 해제하고 다음과 같이 작성 -->
    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6">
     
        <Manager className="org.apache.catalina.ha.session.DeltaManager"
            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"/>
            
            <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                      address="auto"
                      port="5000"
                      maxThreads="6"/>

            <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"/>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
        </Channel>

        <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" />
        <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve" />

        <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
    </Cluster>
    
    ... 생략 ...
   </Engine>
  </Service>
 </Server>

Server > Service > Engine > Cluster 부분에 위와 같이 작성을 한다. membership, receiver 등에 들어가있는 address나 port 등을 변경하지 않는다. 변경해도 되지만 was1와 was2가 같은 값을 가지고 있도록 해줘야한다. 그 외 모든 설정들은 프로젝트의 상황에 따라 변경을 해준다. 

was1과 was2가 있다면 각각의 server.xml 에 위의 설정을 다 해준다. 다 되었다면 잘 되는지 테스트를 해본다. 

테스트는 지난번에 작성한 포스팅을 참조하도록 한다. 

 

끝!

댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31