因客户需要实现Tomcat集群,现需要解决Session共享的问题。在网上有很多解决方案,比如通过Memcached来实现,有很多现成的案例,也有通过Redis来实现的,通过Redis来实现的较为简单,现简述如下。
基本环境:JDK8+Tomcat8.5.29
相信很多人找到jcoleman的redis解决方案,本人一开始也是根据此方案来实现,需要更改代码(RedisSessionManger.java),这里需要引入tomcat8.5.29的依赖包,并更改多处代码(Lifecycle新实现修改、context与container、 maxInactiveInterval改为getContext().getSessionTimeout()*60),相信大家都能修改并实现功能,最后将打包的jar加上两个依赖包一起复制到tomcat的lib下,在context.xml中添加
<Valve className="com.demo.redis_session.RedisSessionHandlerValve" />
<Manager className="com.demo.redis_session.RedisSessionManager"
host="127.0.0.1"
port="6379"