管理多个服务器环境中的会话

che*_*rit 7 java session tomcat

假设我运行了多个Web应用程序服务器,并且我从Server1登录用户,因此他的会话开始.由于http是无状态的,假设下一个请求是否发送到Server3而不是用于登录应用程序的Sever1,如果我使用cookies,隐藏的形式,它不能在Server2中工作.

那么如何管理会话?,可能是通过生成ID(甚至重用生成的jsessioid)并将其存储在中央数据库中,以便所有服务器都可以访问此会话ID并在处理请求之前对其进行验证.然后在case,我需要开发一种机制来将所有会话数据作为对象存储到数据库中.

是否有其他内置机制可用?

Man*_*ish 6

如果要在多台服务器上部署应用程序,则应使用“群集”。应用服务器能够使用“会话复制”来处理这种情况。使用会话复制,每个服务器都将具有活动用户会话的副本。如果第一个请求发送到服务器A,第二个请求发送到服务器B,则它对于应用程序代码和最终用户是透明的。

对于Tomcat中的群集/会话复制,您可以查看链接。