我们的Spring MVC Web应用程序之一部署在具有tomcat 7的多台Web服务器上,而LB位于前端,以平衡请求并将其分配到适当的tomcat服务器。
这种Web耕作的问题在于,每个tomcat服务器都能够存储和检索自己的HTTP会话,但是LB可以将请求发送到任何一台Web服务器。因此,如果通过tomcatServer1为用户提供登录页面的服务,则将在其受尊敬的服务器上创建HTTP会话,并且可能由于仪表板页面LB的第二个请求将其发送到HTTP会话不可用的tomcatServer2,从而再次重定向了用户登录页面。
为了克服这个问题
关于#2,如果万一我们能够开发状态服务器,那么我还必须修改与HttpSession.setAttribute() 和相关的代码HttpSession.getAttribute()。 所以问题是,是否有可能重写HttpSessionsetAttribute和getAttribute方法的实现?另外关于#3,我不知道此解决方案是否将提供分布式状态会话服务器?
HttpSession.setAttribute()
HttpSession.getAttribute()
HttpSession
我使用python为tomcat 开发了会话状态服务器。
因此,我不需要更改已经为创建/访问和销毁会话而编写的代码。另外,由于有单独的服务器/服务正在处理和存储会话,因此不需要主群集。