Servlet,Spring:跨多个服务器共享会话

Servlet, Spring: share session across multiple servers

假设我有一个使用 Spring 框架和 Tomcat 6 的 Java Servlet+JSP 应用程序。此应用程序必须托管在多台计算机上。如何在多台计算机之间共享 HTTP 会话?

我通常使用以下代码获取我的会话:

HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpSession session = httpRequest.getSession();

我是否应该使用其他类型的会话(HttpSession 的自定义实现)使用通用的 MySQL 数据库或其他东西?有什么想法吗?

如果您想使用共享的 HTTP 会话存储,您需要覆盖您使用的应用程序服务器中的会话管理器。这是 link for Tomcat 8 给你一个想法 - http://tomcat.apache.org/tomcat-8.0-doc/config/manager.html

要回答问题的 'should' 部分 - 您不必回答。您可以在负载均衡器上使用基于会话 cookie 的 'stickiness' 选项作为共享 cookie 存储的替代方案。