【发布时间】:2023-09-05 00:34:01
【问题描述】:
我在 HAProxy 中遇到了“source”负载平衡算法,该算法通过根据源 IP 的哈希选择服务器来确保用户将连接到同一台服务器。
为什么以及何时用户连接到同一服务器很重要?假设所有候选服务器都提供相同的内容,我想不出一个原因。
此外,如果用户需要始终连接到同一台服务器,那么负载平衡是否与该用户完全无关?
【问题讨论】:
我在 HAProxy 中遇到了“source”负载平衡算法,该算法通过根据源 IP 的哈希选择服务器来确保用户将连接到同一台服务器。
为什么以及何时用户连接到同一服务器很重要?假设所有候选服务器都提供相同的内容,我想不出一个原因。
此外,如果用户需要始终连接到同一台服务器,那么负载平衡是否与该用户完全无关?
【问题讨论】:
如果我们想要实现会话持久性,用户连接到同一台服务器很重要。
例如,在谈论 HTTP 会话时,存在特定于所讨论会话的信息/变量(想想购物车)。
如果候选服务器未配置为这样做,则不会由候选服务器共享此动态信息,并且在负载平衡级别处理它更简单。
在 HAProxy 中处理此问题的首选方法是使用 cookies,但这仅适用于 HTTP 模式。 HAProxy 提供source 负载平衡算法,以防无法使用 cookie。这可以用于 TCP 模式或拒绝 cookie 的 HTTP 客户端。
在 cookie 过期之前,负载平衡将与相关用户无关。但是我们在处理许多用户时通常需要负载平衡,以便他们可以由多个服务器提供服务,每个用户都坚持其中一个。
【讨论】: