본문 바로가기
TOMCAT

Tomcat 으로만 세션 클러스터링 구성

by SAMSUNG CLOUD-OKY 2021. 6. 11.
반응형

 

# 세션 클러스터링(Session Clustering) 이란?

: 여러대의 서버가 동시에 한가지 업무를 수행하도록 하는 것!

# 보통 어떻게 사용하나?

: 요즘이야 기술이 좋아져서 Redis나 별도의 세션서버를 두고 사용하는 경우이거나, L4같은 장비를 통해서 클러스터링을 합니다.

#:) 저같은 경우도 redis를 통해 세션 클러스터링을 설정 해본적이 있는데요 이번에는 톰캣 설정으로 클러스터링을 해볼려고 합니다.

● server.xml

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">
    <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="45566"
        frequency="500"
        dropTime="12000"/>
    <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
        address="auto"
        port="4001"
        autoBind="100"
        selectorTimeout="12000"
        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.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>

 

● web.xml

<distributable/>

이렇게 두 파일만 설정하면 끝...

정말 될 까 싶어서 war으로 톰캣 두개를 배포해서 8080, 8081 를 와따가따했는데 세션이 이어진다.

처음에 아키텍쳐 설계시 클러스터링을 위해서 L4도입이나. 세션서버를 도입하는 경우가 있는데 이렇게 간단히 톰캣설정을 통해서도 가능하니 좋은거 같다.

다음 간단한 프로젝트시 한번 제대로 써보고싶다!

 

 

#:) 더 자세한 걸 원하시면 정리가 잘된 블로그가 있습니다.

https://jistol.github.io/java/2017/09/15/tomcat-clustering/

 

Tomcat 8 세션 클러스터링 하기

jistol.github.io

 

 

 

 

Tomcat 으로만 세션 클러스터링 해보자! : 네이버 블로그 (naver.com)

반응형

댓글