redis实现tomcat集群session共享

Posted jtlgb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis实现tomcat集群session共享相关的知识,希望对你有一定的参考价值。

1、部署两个tomcat节点,使用nginx实现集群(见http://www.cnblogs.com/zhangzhi0556/articles/nginx.html);

 
 
3、建一个简单的web项目,打包发布到各个tomcat中,用于测试session是否真的实现了共享(自己想办法怎么建测试项目)
 
4、下载开源组件tomcat-redis-session-manager
下载方式一: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
可以下载TomcatRedisSessionManager-1.0.zip包,解压后包括所需的jar包和配置文件。如下所示:
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包拷贝到各个tomcat的lib目录下, 将RedisDataCache.properties拷到tomcat的conf目录下。
 
6、配置文件修改
(1)修改RedisDataCache.properties配置文件如下:
# 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文件中增加以下两行:
<Valve className="com.r.tomcat.session.management.RequestSessionHandlerValve"/>
 <Manager className="com.r.tomcat.session.management.RequestSessionManager"/>
 
(3)设置tomcat/conf/web.xml 中 session有效期
    <session-config>
         <session-timeout>60<session-timeout>
    <session-config>
如果项目里也配置了session有效期,则以项目中有准。
 
7、先启动redis,再启动tomcat,访问测试项目进行测试。

以上是关于redis实现tomcat集群session共享的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat集群通过redis实现session共享

redis实现tomcat集群session共享

使用Tomcat+Redis来实现集群部署中的Session共享问题

使用Tomcat-redis-session-manager来实现Tomcat集群部署中的Session共享

用redis实现tomcat集群下的session共享

#IT明星不是梦#nginx+tomcat集群redis共享session方案实战案例