一尘不染

粘性会话和会话复制

tomcat

我正在评估在tomcat中使用粘性会话和会话复制的情况。根据我的初步评估,我认为如果启用会话复制,则在一个tomcat节点中启动的会话将被复制到所有其他tomcat节点,因此,我们不需要粘性会话即可继续会话,并且任何节点都可以接收该请求。

但是似乎会话复制通常与粘性会话一起使用,否则无论何时将请求发送到其他节点,都需要更改会话ID。参考:http :
//tomcat.apache.org/tomcat-6.0-doc/cluster-
howto.html#Bind_session_after_crash_to_failover_node

如果必须启用粘性会话,谁能解释会话复制的真正用途是什么?因为那样一来,当具有给定会话ID的请求始终发送到同一节点时,您将不必要在每个节点上复制会话。在节点崩溃的情况下这可能是有益的,但是那样不会经常发生,仅使用会话复制就显得过分了。


阅读 419

收藏
2020-06-16

共1个答案

一尘不染

我认为唯一真正的好处就是无需过多思考就可以关闭Tomcat实例。尤其是当节点实际上可以频繁地打开和关闭时,这在当今的云世界(例如Amazon AWS
Spot实例)中适用。替代方法是购买一个不错的负载平衡器,以支持节点排空。但是体面的负载均衡器很昂贵,排干需要时间。

我可以想到的另一种情况是(实施不佳)购物车,其中商品被保留在其中HttpSession并且关闭将需要用户重新购买它们(这可能会导致销售损失)。

但是在大多数情况下,您是对的-拥有粘性会话和会话复制的好处是微不足道的。

2020-06-16