Haproxy:Keepalive连接不均衡

时间:2013-11-13 05:58:50

标签: haproxy keep-alive

我们遇到了一个奇怪的小问题,我们现在已经经历了好几个月了:

我们群集上的负载(http,具有很多非常短(<100ms)请求的长持续保持连接)分布非常不均匀。 所有服务器都以相同的方式配置,但是每秒推送数千个请求的一些连接最终只被发送到一个服务器。 我们尝试了两种负载均衡策略,但这没有用。 它似乎与严格保持联系。

行为不端的后端有以下设置:

option tcpka
option http-pretend-keepalive

option http-server-close是否涵盖了该问题? 如果我做对了它会关闭并重新打开很多连接,这意味着加载到系统?是不是有办法保持连接打开但无论如何均衡地平衡流量? 我尝试启用该选项,但它在加载时会杀死所有后端。

2 个答案:

答案 0 :(得分:4)

HAProxy目前仅支持对客户端保持活动的HTTP连接,而不支持服务器。如果您希望能够检查(并平衡)每个HTTP请求,那么您当前使用以下选项之一

# enable keepalive to the client
option http-server-close

# or

# disable keepalive completely
option httpclose

option http-pretend-keepalive不会改变HAProxy在连接处理方面的实际行为。相反,它旨在作为服务器的解决方法,当它们看到非keepalive连接时(由HAProxy生成到后端服务器),它们无法正常工作。

对后端服务器的保持活动的支持计划在最终的HAProxy 1.5版本中。但实际范围可能会有所不同,最终发布日期是将来的某个时间......

答案 1 :(得分:1)

仅供参考,它出现在最新版本1.5-dev20中(但需要修复它,因为它附带了一些回归)。