gpt4 book ai didi

session - 粘性 session 和 session 复制

转载 作者:行者123 更新时间:2023-11-28 21:43:59 28 4
gpt4 key购买 nike

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

但似乎 session 复制通常用于粘性 session ,否则每当请求转到其他节点时,都需要更改 session ID。引用:http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html#Bind_session_after_crash_to_failover_node

如果必须启用粘性 session ,谁能解释 session 复制的真正用途是什么?因为当具有给定 session ID 的请求总是转到同一个节点时,您将不必要地在每个节点上复制 session 。这在节点崩溃的情况下可能是有益的,但这种情况不会经常发生,并且仅为此使用 session 复制似乎有点矫枉过正。

最佳答案

正如 Mindas 之前解释的那样:

当你使用负载均衡时,意味着你有多个tomcat实例,你需要分担负载。

  • 如果您在没有粘性 session 的情况下使用 session 复制:假设您只有一个用户在使用您的网络应用程序,并且您有 3tomcat实例。该用户向您的应用发送多个请求,然后负载均衡器会将其中一些请求发送到第一个 tomcat实例,并将这些请求中的一些发送给第二个例如,其他到第三个。
  • 如果您使用的是没有复制的粘性 session :假设您只有一个用户在使用您的网络应用程序,并且您有 3 个 tomcat实例。该用户向您的应用发送多个请求,然后loadbalancer 会将第一个用户请求发送到三个中的一个tomcat 实例,以及由此发送的所有其他请求 session 期间的用户将被发送到同一个 tomcat 实例。在这些请求期间,如果您关闭或重新启动此 tomcat实例(使用的 tomcat 实例)负载均衡器发送对另一个 tomcat 实例的剩余请求正在运行,但是因为您不使用 session 复制,所以实例接收剩余请求的 tomcat 没有副本用户 session 然后为此 tomcat 用户开始 session :尽管用户失去了他的 session 并与网络应用程序断开连接网络应用程序仍在运行。
  • 如果您使用带有 session 复制的粘性 session :假设您只有一个用户使用您的网络应用程序,并且您有 3 个 tomcat实例。该用户向您的应用发送多个请求,然后loadbalancer 会将第一个用户请求发送到三个中的一个tomcat 实例,以及由此发送的所有其他请求 session 期间的用户将被发送到同一个 tomcat 实例。在这些请求期间,如果您关闭或重新启动此 tomcat实例(使用的 tomcat 实例)负载均衡器发送对另一个 tomcat 实例的剩余请求当您使用 session 复制时,正在运行实例 tomcat,它收到剩余的请求,然后有用户 session 的副本the user keeps on his session : 用户继续浏览你的网页应用程序未断开连接,关闭tomcat实例不会影响用户导航。

关于session - 粘性 session 和 session 复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6367812/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com