세션 클러스트링 관련해서 작업 해보았고 이와관련해서
정리가 필요할것같아 기록을 남긴다.
톰켓 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 오픈 --> 이부분은 톰켓이 이 구역대에서 최소값중 빈 포트로 자동으로 구성된다.
그리고 세션 공유를 하려고 하는 서버가 기본적으로 멀티캐스팅을 지원하는 서버여야 한다.!!
이와 같은 설정이 필요하다.
그런데 세션 클러스트링 중 위와 같이 설정을 했는데
잘안된다면 아마 설정문제는 아닌 거 같다.
한번 방화벽을 내리고 작업해보면 정말 설정이 잘못된 건지 알수 있다.
'Programming Bookmark > TOMCAT - WAS' 카테고리의 다른 글
HTTP 상태코드 코드별 상세 정리 TOMCAT Access_log 확인 시 구분 용이 (0) | 2019.06.24 |
---|---|
톰켓 애플리케이션 포트 다르게 해서 이중화 하는법 정리 (0) | 2019.03.04 |