企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
参考文献: https://www.cnblogs.com/cgli/p/7920573.html 要点: 同一个应用在运行多个tomcat实例的时候,经常需要共享Session。tomcat配置共享session有多种方式 1、利用tomcat自身集群特性进行配置; 2、利用Memcache第三方缓存进行配置; 3、利用Redis第三方缓存进行配置; 使用方法3,重点在于tomcat 8.x 因为tomcat7还有点不同,tomcat7的配置可以利用一个开源组件,直接配置即可以使用,比较简单方便(直接参考这个文章即可:http://blog.csdn.net/qq584852076/article/details/46502185)。 tomcat8却是有不同的,开源组件明确说是不支持的。如果要使用tomcat8, 要对源码做简单修改。 开源组件在这里: https://github.com/jcoleman/tomcat-redis-session-manager 分步指南 1. 下载开源项目 https://github.com/jcoleman/tomcat-redis-session-manager 2. 支持tomcat8需修改代码 修改RedisSessionManager类中的initializeSerializer()方法 ~~~ /* if (getContainer() != null) { loader = getContainer().getLoader(); }*/ Context context = this.getContext(); if(context !=null) { loader = context.getLoader(); } ~~~ 3. 打包部署 将源码打成jar包,取名redistomcat8.jar 将redistomcat8, 以及以下依赖包拷贝到tomcat的lib下。 ![](https://box.kancloud.cn/a85986443b2918e0b70d0c7644bb0c63_230x89.png) 4. 新增tomcat context.xml配置 ~~~ <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" /> <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager" host="r-wz97b7d28a98aa44.redis.rds.aliyuncs.com" port="6379" database="0" password="xxxxxxx" maxInactiveInterval="60" /> ~~~ 同时如果应用下的WEB-INF/lib有相同的jar去掉 重启tomcat服务即可