使用redis3.0实现tomcat集群session共享

使用redis3.0实现tomcat集群session共享

  1. 部署两个tomcat节点,使用nginx实现集群
  1. redis安装 %20%E5%8D%81%E4%B9%9D/)

  2. 建一个简单的web项目,打包发布到各个tomcat中,用于测试session是否真的实现了共享(自己想办法怎么建测试项目)

  3. 下载开源组件tomcat-redis-session-manager

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
下载方式一:https://github.com/jcoleman/tomcat-redis-session-manager/downloads  (这个是早期的,不支持redis3.0集群)
下载方式二(推荐):https://github.com/ran-jit/TomcatClusterRedisSessionManager (支持redis3集群和tomat8)

https://github.com/ran-jit/TomcatClusterRedisSessionManager/wiki/Tomcat-Cluster-Redis-Session-Manager

commons-logging-1.2.jar

commons-pool2-2.4.1.jar

jedis-2.8.0.jar

commons-pool2-2.4.1.jar

commons-logging-1.2.jar

RedisDataCache.properties

5、将上面jar包拷贝到各个tomcatlib目录下, 将RedisDataCache.properties拷到tomcatconf目录下。

6、配置文件修改

(1)修改RedisDataCache.properties配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
# redis hosts ex: 127.0.0.1:6379, 127.0.0.2:6379, 127.0.0.2:6380, ....

redis.hosts=192.168.187.131:6379 (redis服务器IP及端口号)

# Redis Password

redis.password= redis (REDIS配置文件中设置的密码)

# set true to enable redis cluster mode

redis.cluster.enabled=false

(2)在tomcat/conf/context.xml文件中增加以下两行:

1
2
3
<Valve className="com.r.tomcat.session.management.RequestSessionHandlerValve"/>

 <Manager className="com.r.tomcat.session.management.RequestSessionManager"/>

(3)设置tomcat/conf/web.xmlsession有效期

1
2
3
4
5
   <session-config>

         <session-timeout>60<session-timeout>

    <session-config>

如果项目里也配置了session有效期,则以项目中有准。

7、先启动redis,再启动tomcat,访问测试项目进行测试。

您的支持将鼓励我继续创作!