我们正面临一个问题,我们的客户端让它命名为a。正在尝试通过ha代理连接DB server(Cockroach)name B负载平衡
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
所以,当keepalive在每一端启用时,是什么导致TCP连接断开。
最佳答案
Keepalive是在没有关闭连接的情况下,使连接消失的一个端点。向那个方向调查。
keepalive真正保持连接活动的唯一时间是连接到一个配置错误的防火墙,该防火墙会丢弃空闲连接。
关于postgresql - 使用haproxy了解客户端和cockroachdb之间的keepalive,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56043666/