본문으로 바로가기

세션 클러스트링 관련해서 작업 해보았고 이와관련해서

정리가 필요할것같아 기록을 남긴다.


톰켓 7 세션 클러스트링 관련 공식 문서 - > 바로가기


<Engine name="Catalina" defaultHost="localhost"> <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"> <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="받는서버 톰켓아이피" port="4000" autoBind="100" selectorTimeout="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.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"/> <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener" /> <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener" /> </Cluster> </Engine>


address 부분은 톰켓 7 세션클러스트링 관련해서 auto 라고 적혀있는데. 

내가 작업할때는 따로 잡히지 않았다. 이부분은 세션 클러스트링이 all-to-all 방식이라 같은 네트워크 내에서 

같은 멀티캐스팅 주소라면 이와같이 설정해도 잡힐 것 같은데

내가 작업하는 환경에서는 auto는 알수 없는 호스트였다.

이부분은 내가 받는 서버를 명시하였다.


<Cluster> 태그 명시는 여러 사이트에서는 Engine 밑에 넣어라 Host 밑에 넣어라 말이 있었지만

Engine 밑에 넣어도 잘 작동된다.

그리고 주석 처리된 태그도 Engin 태그 밑에 명시되어있다.


 <Manager> 태그는 DeltaManager 클래스가 명시되어 있다.

이방식은 all - to - all 방식이라 인스턴스가 늘어나게되면 부하가 많이 갈수 있다고 한다.

그래서 이를 대체하는 BackupManager 라는 클래스가 있다 이부분은 좀더 공부가 필요할듯..


이외에도 설정부분이 있는데 

애플리케이션에 있는 web.xml에 


<distributable/>


이 부분을 추가한다.


그리고 방화벽 오픈이 필요하다


45564 tcp,udp 오픈

4000:4100 tcp 오픈  --> 이부분은 톰켓이 이 구역대에서 최소값중 빈 포트로 자동으로 구성된다.


그리고 세션 공유를 하려고 하는 서버가 기본적으로 멀티캐스팅을 지원하는 서버여야 한다.!!


이와 같은 설정이 필요하다.


그런데 세션 클러스트링 중 위와 같이 설정을 했는데


잘안된다면 아마 설정문제는 아닌 거 같다.


한번 방화벽을 내리고 작업해보면 정말 설정이 잘못된 건지 알수 있다.