写在前面的话
写这篇博客出于公司最近要迁移到新的云上面且对之前的资源,架构做一个升级。
本来是一个不大的项目,旧环境旧一个 TOMCAT 跑起来,不过出于高可用考虑,新环境决定使用 TOMCAT 集群的方式,前方交给 NGINX 来处理,为了避免一个 TOMCAT 挂掉之后影响用户的使用,决定使用 Redis 来保存 Session。
结果问题就出现了,其它的项目都能够毫无问题的运行,但就这个项目出现一个恶心的一批的问题,TOMCAT 不配置 Redis,服务毫无问题,一配置,输入账号密码登录之后瞬间又登出,查看 Redis 发送 Session 明明没问题。
这就很脑壳痛了!好在网上大神比较多!
解决办法
来自 Fighter168 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/fighterandknight/article/details/70210245?utm_source=copy
为了避免出现该博主博客被删除的情况,在这里对该问题的关键点进行一个简单的搬运!
Tomcat 集群共享 Session 图示:
出现问题的原因在于:
加了 Redis 做 Session 共享,共享的对象没有序列化,Session 又得从 TOMCAT 1 共享到 TOMCAT 2,所以涉及到对象的传递,对象如果需要通过网络传输的话,那么必须要通过序列化,否则,传输不了对象,也就共享不了。
那么问题的症结在于对象的登录对象的序列化了,这就是开发的活了,后经过开发修改代码得以解决!