【问题标题】:How should HAProxy with round-robin load balancing work?具有循环负载平衡的 HAProxy 应该如何工作?
【发布时间】:2018-12-12 16:21:25
【问题描述】:

在我看来,HAProxy 的循环负载平衡并不总是循环。还是bug?

我正在对 hive-server2 实例进行负载平衡。我有 3 个实例来服务 Hive 查询。客户是直线。当我在这个计算机集群上运行我的长时间测试时,实例重新启动了几次,一次,即使 HAProxy 统计页面上的所有实例都显示为 UP 状态(并且我手动检查了服务器是否已启动),当更大的负载到达时,只有两个实例为所有查询提供了 35-40 分钟的服务,从那时起,一切都恢复正常。

所以,我在统计页面上看到的是所有实例都在 30 分钟前重新启动,而服务器 2 和 3 分别提供了 4-5 个客户端连接,而服务器 1 没有提供任何服务。然后突然间,服务器 1 开始并行服务 9 个客户端,而其他两台服务器并行处理 4-5 个客户端,之后真正的循环平衡恢复正常。

当 HAProxy 配置为进行循环平衡时,是否应该将会话平均分配给所有启动、可访问且服务少于最大允许会话的服务器?

【问题讨论】:

    标签: hive load-balancing haproxy round-robin


    【解决方案1】:

    默认情况下,HAProxy 应该向负载平衡方案中定义的所有服务器发送请求,但您还有更多因素会造成这种情况,例如:timeout connecttimeout clienttimeout servercookie。您可以尝试调整这些参数。

    请记住,负载平衡(Layer 7) http 请求或(Layer 4) TCP 请求是有区别的。例如,可能 HTTP 服务器正在返回 400s 或 500s 响应,但与服务器的 TCP 连接正常。

    【讨论】:

    • 我正在负载平衡 TCP 请求。超时值实际上相当大。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 2018-11-04
    • 2018-02-17
    相关资源
    最近更新 更多