我们正面临一个问题,我们的客户端让它命名为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/

10-15 18:32