具有循环负载平衡的HAProxy应该如何工作?

时间:2018-12-12 16:21:25

标签: hive load-balancing haproxy round-robin

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

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

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

如果HAProxy配置为进行轮循平衡,则HAProxy是否应在所有已启动,可访问且服务少于最大允许会话的服务器上平均分配会话?

1 个答案:

答案 0 :(得分:0)

默认情况下,HAProxy应该向负载均衡方案中定义的所有服务器发送请求,但是您有更多因素在起作用,例如:timeout connecttimeout clienttimeout server,{ {3}}。您可以尝试调整这些参数。

请记住,负载均衡cookie http请求或(Layer 7) TCP请求是有区别的。例如,也许HTTP服务器返回了400500的响应,但是与服务器的TCP连接正常。