【发布时间】:2011-09-16 02:30:49
【问题描述】:
我正在评估在 tomcat 中使用带有会话复制的粘性会话的情况。从我最初的评估来看,我认为如果我们启用会话复制,那么在一个 tomcat 节点中启动的会话将被复制到所有其他 tomcat 节点,因此我们不需要粘性会话来继续会话,并且请求可以被任何节点接收.
但似乎会话复制通常与粘性会话一起使用,否则每当请求转到某个其他节点时都需要更改会话 ID。参考:http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html#Bind_session_after_crash_to_failover_node
如果您必须启用粘性会话,谁能解释会话复制的真正用途是什么?因为那样你将不必要地在每个节点上复制会话,当具有给定会话 id 的请求总是去同一个节点时。这在节点崩溃的情况下可能是有益的,但这种情况不会经常发生,并且仅为此使用会话复制似乎有点过头了。
【问题讨论】:
-
不是您所问问题的答案,但也许仍然有用:您可以查看 memcached-session-manager (code.google.com/p/memcached-session-manager),它也为非粘性会话提供会话复制。跨度>
-
由于用户连接的节点可能会宕机,会话复制使其他健康节点能够恢复相同会话。所以不是“如果你必须启用粘性会话,谁能解释会话复制的真正用途是什么?”,我宁愿问:如果你必须会话复制,谁能解释一下粘性会话的真正用途是什么?因为它更有趣……而且我想到的唯一答案是:在这种情况下,粘性会话 only 加快了通信速度,不管有没有它,会话都在那里。
标签: session tomcat session-replication