我有一个应用程序,当会话切换发生时我遇到会话过期(未找到)问题。我在apache中使用粘性会话进行了负载均衡。
当我运行基于java web的应用程序时,会在两个tomcats上创建会话,如下所示 primary tomcat(tomcatA) - 0B04C708749BC91A3A872B753F74E938.tomcatA 二级tomcat(tomcatB) - 0B04C708749BC91A3A872B753F74E938.tomcatA
浏览器cookie将JSESSIONID显示为0B04C708749BC91A3A872B753F74E938.tomcatA。每个请求都发送到tomcatA。在某些时候由于负载均衡请求转到tomcatB。会话ID变为0B04C708749BC91A3A872B753F74E938.tomcatB(在浏览器中它仍然是0B04C708749BC91A3A872B753F74E938.tomcatA,我在servlet中找到了0B04C708749BC91A3A872B753F74E938.tomcatB)。所以找不到会话。
这是默认行为还是我做错了什么?
这两个tomcats与sessionId具有相同的0B04C708749BC91A3A872B753F74E938.tomcatA是否正确?
tomcatB不应该有0B04C708749BC91A3A872B753F74E938.tomcatB吗?