我们使用 haproxy 在 tcp 模式下进行 thrift(rpc) 服务器负载平衡。但是当后端服务器重新启动时,我们遇到了一个问题。
当我们的 thrift(rpc) 服务器重新启动时,它首先停止侦听 haproxy 配置为连接的端口,但仍会处理正在运行的请求,直到它们全部完成(正常重启)。
因此在重启期间,仍然有客户端通过haproxy到后端服务器建立的连接套接字,而后端服务器不接受任何新连接,但haproxy仍然认为该后端服务器是健康的,并将向该服务器调度新连接。分派到该服务器的任何新连接都将花费相当长的时间来连接,然后超时。
有什么方法可以通知 haproxy 服务器已停止侦听并且不向其分派任何连接吗?
我尝试过以下操作:
timeout connect设置为非常低 + redispatch+retry 3option tcp-check两者都不能解决问题。
haproxy ×1