[테스트환경]
- HostOS : Windows10
- GuestOS : CentOS 6.7
- JDK : OpenJDK 1.7.0_251
- WEB : Apache/2.2.31 (httpd-2.2.31)
- WAS : Apache-Tomcat-7.0.90
[내용]
- 설정파일 : conf/server.xml
1) 기본 server.xml에 있는 설정 주석제거 (<!-- -->제거)
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
2) 주석 해제한 곳 아래에 설정 추가
<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="①225.0.0.30" 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" 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) 애플리케이션 WEB-INF/web.xml 에 태그 추가
<distributable/>
① 클러스터링시 사용할 멀티캐스트 IP 작성
② 서버의 IP(여기서는 GuestOS IP) 작성 (auto 사용 시 /etc/hosts 설정을 default로 가져오므로, 설정 되어있는지 확인 필요)
③ 클러스터링 Port 작성, 인스턴스별로 해당 포트는 다르게 사용해야함 (unique 값)
근데 솔직히 Tomcat 7 에서 클러스터링 잘 되는지 모르겠다... 일단 세션이 안끊기고 잘 넘어는 가는데...
세션 복제에 시간이 너무 오래걸려서 세션을 잃어버리는게 한 두번이 아닌것같다...
세션 클러스터링 해서 사용해야 하는 서비스는 안정성에서 JBoss EAP나 WildFly 쓰는게 더 나아보인다.
아니면 7버전이 문제일지도 모르고.. 8버전도 테스트 해 봐야지...
내가 테스트를 잘 못 했나 싶어서 다시 테스트 해봤는데, 클러스터링이 잘 안돼서 세션을 잃어버리는게 아니고..
세션클러스터링 기능을 집어 넣으니까 기동시간이 엄~청 길어져서... 내가 로그 잘 안보고 다른 인스턴스를 죽여서 그런거였다.
일단 톰캣 클러스터링은 무죄이긴 한데, 기동시간 길어지는건... 리스크가 큰 것 같다.
지금 애플리케이션이라고 해봤자 세션 체크하는 jsp 하나뿐인데 이정도면.... 큰 애플리케이션 올라가면 큰일날듯...ㅋㅋㅋ
작은 애플리케이션을 클러스터링 없이 사용할거면 그 때 Tomcat 쓰는게 바람직 하겠다.
혹시나 해서 VM 메모리 올리고 다시 해봤는데, 기동 시간이 그나마 좋아지기는 한다...
2020. 4. 24. 14:03 Naver Blog Backup
반응형
'Middleware > Setting' 카테고리의 다른 글
[환경설정] ISO파일을 이용한 CentOS 7.9 Local Repo 설정 (0) | 2022.03.23 |
---|---|
[환경설정] VirtualBox를 이용한 CentOS 7.9 설치 (0) | 2022.03.23 |
[Tomcat] Tomcat 8버전 Clustering (0) | 2021.02.27 |