我们面临一个问题,我们的客户允许它命名 a 。正在尝试连接 db 服务器(蟑螂(名称 b 通过ha-proxy
平衡负载A < -- > haproxy < -- > B
现在,当我们的客户a接收Broken Pipe
错误时,现在每个人都在。
但我无法理解为什么?
蟑螂服务器已经具有以下默认值,即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
那么,当每一端启用了keetalive时,导致TCP连接掉落的是什么。
keepalive是建立连接如果终点之一死亡而没有关闭连接,则消失了。朝那个方向进行调查。
唯一的守护力实际上保持连接的唯一时间是与掉落闲置连接的不配合的防火墙有关的。