133

在负载平衡服务器的上下文中,会话亲和性粘性会话有什么区别?

4

8 回答 8

85

我已经看到这些术语可以互换使用,但是有不同的实现方式:

  1. 在第一个响应中发送一个 cookie,然后在后续响应中查找它。cookie 说明要发送到哪个真实服务器。如果您必须支持无 cookie 浏览器,那就
    不好了
  2. 根据请求者的 IP 地址进行分区。如果它不是静态的或者如果很多人通过同一个代理进入,那就
    不好了。
  3. 如果您对用户进行身份验证,则根据用户名进行分区(它必须是支持 HTTP 的身份验证模式才能执行此操作)。
  4. 不需要状态。
    让客户端访问任何服务器(将状态发送给客户端并让他们将其发回)
    这不是一个粘性会话,它是一种避免必须这样做的方法。

我怀疑sticky可能指的是cookie方式,并且在某些情况下,affinity可能指的是#2和#3,但这不是我看到它使用的方式(或我自己使用它)

于 2009-06-24T18:22:48.613 回答
40

正如我一直听到负载平衡场景中使用的术语一样,它们是可以互换的。两者都意味着一旦会话开始,同一台服务器会为该会话的所有请求提供服务。

于 2009-06-24T18:19:31.003 回答
21

粘性会话意味着当一个请求从客户端进入一个站点时,所有进一步的请求都会转到相同的服务器,初始客户端请求被访问。我相信会话亲和力是粘性会话的同义词。

于 2009-06-24T18:18:42.473 回答
14

他们是一样的。

两者都意味着当进入负载均衡器时,请求将被定向到为第一个请求提供服务(并具有会话)的服务器。

于 2009-06-24T18:20:49.817 回答
11

粘性会话意味着将特定会话的请求路由到为该会话提供第一个请求的同一台物理机器。

于 2011-07-21T05:23:09.863 回答
2

本文为我澄清了这个问题,并讨论了其他类型的负载均衡器持久性。

Dave 的想法:负载均衡器持久性(粘性会话)

于 2011-11-29T16:11:45.133 回答
0

它们是同义词。完全没有区别

粘性会话/会话亲和力:

保留用户会话与发送用户请求的服务器之间的亲和力/粘性/联系。

于 2020-05-10T05:00:25.400 回答
0

本文解释了差异: https ://www.haproxy.com/blog/load-balancing-affinity-persistence-sticky-sessions-what-you-need-to-know/

此链接的主要部分:

亲和性:这是当我们使用来自应用层之下的层的信息来维护对单个服务器的客户端请求时。在这种情况下使用客户端的 IP 地址。IP 地址可能会在同一会话期间更改,然后连接可能会切换到不同的服务器。

持久性:这是我们使用应用层信息将客户端固定到单个服务器的时候。在这种情况下,负载均衡器会在响应中注入一些 cookie,并在后续请求中使用相同的 cookie 路由到同一服务器。

粘性会话:粘性会话是由持久性维护的会话

持久性优于亲和力的主要优点是它更准确,但有时,持久性是不可行的(当客户端不允许像无cookie浏览器这样的cookie时),所以我们必须依赖亲和力。

使用持久性,我们的意思是我们 100% 确定用户将被重定向到单个服务器。使用亲和力,我们的意思是用户可能会被重定向到同一个服务器……</p>

于 2021-09-15T12:09:21.073 回答