首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有条件的tomcat粘性会话(集群)

有条件的tomcat粘性会话(集群)
EN

Stack Overflow用户
提问于 2012-03-10 09:41:07
回答 1查看 868关注 0票数 0

我有一个web应用程序,它基于映射到数据库记录的持久cookie来执行大多数登录的用户相关操作,因此每个ajax帖子都不需要或不想要tomcat会话。

在极少量的ajax请求中,我需要为登录的用户保存少量的servlet会话数据,并且我希望会话能够持续很长时间(只要他打开了浏览器),即使有很长一段时间处于非活动状态。

现在,我的理解是tomcat集群有粘性会话或复制会话,由您选择。在大多数情况下,我希望负载均衡器将流量发送到负载最少的tomcat实例,而servlet永远不会获取或创建会话。在极少数情况下,我需要一个会话并访问少量的会话数据。

另外,我使用的是apache mod-proxy。这会限制你的选择吗?

如果我选择粘性会话负载平衡,那么我的绝大多数不需要粘性的ajax请求都将转到同一个tomcat服务器。然而,有些人说,如果您不担心故障转移,那么粘滞会话可以提供更好的性能。

谁能告诉我,在我的情况下,什么是正确的选择?

我的一个想法是,每当我在tomcat中创建会话时,我还会为一个特定的servlet (path)创建一个MYSESSIONID cookie,并将其设置为与tomcat sessionid相同的值。然后,在我极少数需要访问会话数据的servlet请求中,我遍历了这一个路由servlet,负载均衡器可以创建一个绑定到MYSESSIONID cookie的粘性会话。这是一个好的解决方案吗?

安迪

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-10 16:40:14

会话对于web应用是全局的。它并不绑定到webapp中的特定servlet。您的路由servlet没有多大意义。

如果您不担心故障转移,那么粘滞会话会更容易。如果你需要集群,这可能意味着你有非常多的并发用户。因此,平均而言,所有服务器上的负载都应该是相似的。

另一方面,如果会话中的数据很少,并且您的应用程序很少对其进行修改,则复制会话的成本应该不高。您可以将故障转移作为额外的优势,并且负载均衡器可以使用纯粹的轮询算法,确保每个服务器获得与其他服务器相同数量的请求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9643195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档