3

我们正在研究是否可以使用 HAProxy 在多个 tomcat 服务器之间进行负载平衡。我们希望对所有请求使用 HTTP,并通过 JSESSIONID cookie 使用会话。HAProxy 本身不支持 SSL,但我们可以在它前面使用 stunnel。

考虑到这个设置:

1)我们是否必须使用粘性会话(后续请求总是转到同一个 tomcat 实例)?

2)如果我们必须使用粘性会话,那么我们如何解决使用新的 webapp 部署更新我们的 tomcat 实例而不必强制用户注销(丢失他们的会话)?

4

1 回答 1

4

您不必使用粘性会话,但如果您不使用粘性会话,则需要使用共享会话解决方案,如http://tomcat.apache.org/tomcat-7.0-doc/config/中所述manager.html(JDBC 会话存储可能是要走的路)。我打赌你可以找到在 Redis 或 Memcache 中进行会话存储的代码,但我没有深入研究。

一旦你这样做了,它也将解决更新实例的问题,尽管我的经验并不是 Web 应用程序更新会自动使会话无效(似乎只有完全重启才会这样做)。不过,我将不得不仔细研究一下。

于 2011-05-19T13:00:10.510 回答