haproxy和循环负载平衡应该如何工作?

vc6uscn9  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(236)

在我看来,haproxy的循环负载平衡并不总是循环的。还是虫子?
我正在负载平衡hive-server2示例。我有3个示例来提供配置单元查询。客户是直线的。当我在这群计算机上运行长时间的测试时,示例会重新启动几次,有一次,即使haproxy stats页面上的所有示例都显示为up状态(我手动检查服务器是否已启动),但只有两个示例会在35-40分钟内为所有查询提供服务,当更大的负载到达时,从那时起,一切都恢复正常了。
因此,我在stats页面上看到的是,所有示例都是在30分钟前重新启动的,虽然server2和server3分别提供了4-5个客户端连接,但是server1没有提供任何服务。然后突然,服务器1并行地为9个客户机提供服务,另外两个服务器分别并行地为4-5个客户机提供服务,然后真正的循环平衡恢复正常。
当haproxy配置为执行循环平衡时,它不应该将会话均匀地分布在所有已启动、可访问和服务少于最大允许会话数的服务器上吗?

a14dhokn

a14dhokn1#

默认情况下,haproxy应该向在负载平衡方案中定义的所有服务器发送请求,但是您有更多的因素促成了这一点,例如: timeout connect , timeout client , timeout server , cookie . 您可以尝试调整这些参数。
请记住,如果您是负载平衡(第7层)http请求或(第4层)tcp请求,则会有所不同。例如,可能http服务器正在返回 400 s或 500 的响应,但到服务器的tcp连接正常。

相关问题