본문 바로가기
오픈소스/Redis

[Redis] Redis-Tomcat 연동 설정 및 인스턴스간 Session 유지 테스트

by sangyeon 2022. 1. 6.
728x90

이번 글에서는 redis와 tomcat을 클러스터링하여 세션 Clustering 테스트를 해보려한다.

 

1. Redis session-manager 다운로드

$ cd /apache/tomcat_9.0.21/servers/download

$ wget https://github.com/ran-jit/tomcat-cluster-redis-session-manager/releases/download/2.0.4/tomcat-cluster-redis-session-manager.zip

 

2. 연동을 위한 라이브러리 및 conf 파일 설정

$ unzip tomcat-cluster-redis-session-manager.zip

....

$ cp ./tomcat-cluster-redis-session-manager/lib/* /apache/tomcat_9.0.21/servers/testM1/lib/
$ cp ./tomcat-cluster-redis-session-manager/conf/* /apache/tomcat_9.0.21/servers/testM1/conf/

$ cp ./tomcat-cluster-redis-session-manager/lib/* /apache/tomcat_9.0.21/servers/testM2/lib/
$ cp ./tomcat-cluster-redis-session-manager/conf/* /apache/tomcat_9.0.21/servers/testM2/conf/

 

3. Tomcat에 Redis 설정(1)

[root@sydev conf]# cat redis-data-cache.properties 
#-- Redis data-cache configuration

#- redis hosts ex: 127.0.0.1:6379, 127.0.0.2:6379, 127.0.0.2:6380, ....
redis.hosts=127.0.0.1:6379

#- redis password (for stand-alone mode)
redis.password=foobared

#- set true to enable redis cluster mode
redis.cluster.enabled=false

#- redis database (default 0)
#redis.database=0

#- redis connection timeout (default 2000)
#redis.timeout=2000

 

4. Tomcat에 Redis 설정(2)

$ vi ./conf/context.xml

27     <!-- Uncomment this to disable session persistence across Tomcat restarts -->
28     <!--
29     <Manager pathname="" />
30     -->
31 
32     <Valve className="tomcat.request.session.redis.SessionHandlerValve" />
33     <Manager className="tomcat.request.session.redis.SessionManager" />
34 </Context>

 

5. 세션 유지 테스트

5-1. session_check.jsp 페이지 호출 10회


5-2. tomcat server shutdown & startup

[root@sydev bin]# ./stop.sh
====================================================
JAVA_HOME=/usr/java/java8_64
CATALINA_HOME=/apache/tomcat_9.0.21/engine
SERVER_HOME=/apache/tomcat_9.0.21/servers/testM1
HTTP_PORT=8083
SSL_PORT=8443
AJP_PORT=8009
SHUTDOWN_PORT=8005
Using CATALINA_BASE:   /apache/tomcat_9.0.21/servers/testM1
Using CATALINA_HOME:   /apache/tomcat_9.0.21/engine
Using CATALINA_TMPDIR: /apache/tomcat_9.0.21/servers/testM1/temp
Using JRE_HOME:        /usr/java/java8_64
Using CLASSPATH:       /apache/tomcat_9.0.21/engine/bin/bootstrap.jar:/apache/tomcat_9.0.21/servers/testM1/bin/tomcat-juli.jar

[root@sydev bin]# ./start.sh
...(중략)


5-3. session_check.jsp 재 호출시 count 확인

count가 1부터 다시 시작하는 것이 아니라 세션 아이디가 동일하고 10 + 1된 11로 증가된 것을 보아 세션이 유지된 것을 확인할 수 있다.

 

728x90