我们面临一个问题,我们的客户将其命名为A。正在尝试通过 ha-proxy连接数据库服务器(Cockroach)名称B负载平衡
A < -- > haproxy < -- > B
现在,当我们的客户端 A 收到Broken Pipe
错误时。
但我无法理解为什么?
Cockroach 服务器已经具有以下默认值,即 60 秒。
COCKROACH_SQL_TCP_KEEP_ALIVE ## which is enabled to send for 60 second
另外,我们的 haproxy 配置具有以下设置。
defaults
mode tcp
# Timeout values should be configured for your specific use.
# See: https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#4-timeout%20connect
timeout connect 10s
timeout client 1m
timeout server 1m
# TCP keep-alive on client side. Server already enables them.
option clitcpka
选项clitcpka
那么是什么导致 TCP 连接在每一端都启用 keepalive 时断开。