Ash*_*ish 26 session tomcat session-replication
我正在评估在tomcat中使用会话复制的粘性会话的情况.从我最初的评估开始,我认为如果我们启用会话复制,那么在一个tomcat节点中启动的会话将被复制到所有其他tomcat节点,因此我们不需要粘性会话来继续会话,并且任何节点都可以接收请求.
但似乎会话复制通常与粘性会话一起使用,否则只要请求转到其他节点,就需要更改会话ID.ref:http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html#Bind_session_after_crash_to_failover_node
如果你必须启用粘性会话,任何人都可以解释会话复制的真正用途吗?因为当具有给定会话ID的请求始终到达同一节点时,您将不必要地在每个节点上复制会话.在节点崩溃的情况下它可能是有益的,但是这不会经常发生并且仅使用会话复制似乎是一种过度杀伤.
Nic*_*ico 74
正如Mindas之前解释的那样:
当您使用负载平衡时,它意味着您有多个tomcat实例,并且您需要划分负载.
min*_*das 10
我认为唯一真正的好处是能够在没有太多思考的情况下关闭Tomcat实例.特别是当节点可以经常打开和关闭时,这适用于云世界(想想亚马逊AWS点实例).替代方案是购买一个支持节点排放的合适负载均衡器.但体面的负载平衡器价格昂贵,排水需要时间.
我能想到的另一个场景是(购物车的实施不佳),其中物品被保留在中HttpSession并且关闭将需要用户重新购买它们(这可能导致销售损失).
但在大多数情况下,你是对的 - 让粘性会话和会话复制都可以忽略不计.