如何处理粘性会话问题

本文关键字:会话 问题 处理 何处理 | 更新日期: 2023-09-27 18:00:51

我遇到了一个奇怪的问题,我的应用程序中很少有用户在使用应用程序时将笔记本电脑从底座上拔出并移动到WIFI网络,现在在更改网络后,当他们点击应用程序中的任何导航时,它会将他们带回登录页面,并提及会话已过期。

背景:托管应用程序的服务器具有负载平衡器,该负载平衡器动态路由连接请求,因此当用户从一个网络转到另一个网络时,由web浏览器维护的旧会话保持打开,但负载平衡器将其识别为新请求,并因此将其分配给需要登录的下一个可用服务器,现在,如果用户幸运地被路由到他之前所在的同一个web服务器上,那么一切都很好,否则他将被重定向到新的web浏览器。

请帮助我解决罕见的情况问题。提前谢谢。

Vishal

如何处理粘性会话问题

这个问题主要取决于您的负载均衡器和粘性的持久性。

一些平衡器在内部处理粘性持久性,因此它们在客户端IP和路由之间有一个表。你的案子听起来是这样的。

现在,如果将持久性从内部表转移到cookie(或URL附录(,就可以解决这种情况。通过使用cookie,客户端将在每个请求上发送cookie,负载均衡器可以检查请求的路由是否仍然有效,然后为请求提供服务。Apache有一个非IIS示例(http://httpd.apache.org/docs/2.4/mod/mod_proxy_balancer.html#stickyness_implementation),它们如何接近粘性,但可行性取决于您的平衡器。

由于您有适当的负载平衡,因此问题只是将会话存储在Jsession或Cookie中,为了避免此问题,我建议您配置服务器以使用Cookie。默认情况下,Tomcat 7(我相信Tomcat 8(配置为使用Jsession