我们遇到了一个奇怪的小问题,我们现在已经经历了好几个月了:
我们群集上的负载(http,具有很多非常短(<100ms)请求的长持续保持连接)分布非常不均匀。 所有服务器都以相同的方式配置,但是每秒推送数千个请求的一些连接最终只被发送到一个服务器。 我们尝试了两种负载均衡策略,但这没有用。 它似乎与严格保持联系。
行为不端的后端有以下设置:
option tcpka
option http-pretend-keepalive
option http-server-close
是否涵盖了该问题?
如果我做对了它会关闭并重新打开很多连接,这意味着加载到系统?是不是有办法保持连接打开但无论如何均衡地平衡流量?
我尝试启用该选项,但它在加载时会杀死所有后端。
答案 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中(但需要修复它,因为它附带了一些回归)。