【问题标题】:Load balancing: when should a user always connect to the same server?负载平衡:用户何时应该始终连接到同一台服务器?
【发布时间】:2023-09-05 00:34:01
【问题描述】:

我在 HAProxy 中遇到了“source”负载平衡算法,该算法通过根据源 IP 的哈希选择服务器来确保用户将连接到同一台服务器

为什么以及何时用户连接到同一服务器很重要?假设所有候选服务器都提供相同的内容,我想不出一个原因。

此外,如果用户需要始终连接到同一台服务器,那么负载平衡是否与该用户完全无关?

【问题讨论】:

    标签: load-balancing haproxy


    【解决方案1】:

    如果我们想要实现会话持久性,用户连接到同一台服务器很重要。
    例如,在谈论 HTTP 会话时,存在特定于所讨论会话的信息/变量(想想购物车)。
    如果候选服务器未配置为这样做,则不会由候选服务器共享此动态信息,并且在负载平衡级别处理它更简单。

    在 HAProxy 中处理此问题的首选方法是使用 cookies,但这仅适用于 HTTP 模式。 HAProxy 提供source 负载平衡算法,以防无法使用 cookie。这可以用于 TCP 模式或拒绝 cookie 的 HTTP 客户端。

    在 cookie 过期之前,负载平衡将与相关用户无关。但是我们在处理许多用户时通常需要负载平衡,以便他们可以由多个服务器提供服务,每个用户都坚持其中一个。

    【讨论】:

      最近更新 更多