Haproxy:保持连接不均衡



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

我们集群上的负载(http,具有许多非常短(<100ms)请求的长期保持连接)分布非常不均匀。所有服务器的配置方式都相同,但一些每秒推送数千个请求的连接最终只会发送到一台服务器。我们尝试了两种负载平衡策略,但这无济于事。它似乎与保持活动严格相关。

行为异常的后端具有以下设置:

option tcpka
option http-pretend-keepalive

option http-server-close是为了涵盖这个问题吗?如果我做对了,它将关闭并重新打开许多连接,这意味着系统负载?有没有办法保持连接畅通,但无论如何都要平衡流量?我试图启用该选项,但它在负载下会杀死我们所有的后端。

HAProxy目前只支持与客户端的保持活动状态的HTTP连接,而不是服务器。如果您希望能够检查(和平衡)每个 HTTP 请求,则当前必须使用以下选项之一

# enable keepalive to the client
option http-server-close
# or
# disable keepalive completely
option httpclose

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

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

供参考,它存在于最新版本 1.5-dev20 中(但请随之修复,因为它附带了一些回归)。

最新更新