使用haproxy了解客户端和cockroachdb之间的keepalive

时间:2019-05-08 15:01:44

标签: postgresql haproxy keep-alive cockroachdb tcp-keepalive

我们面临一个问题,我们的客户将其命名为 A 。正在尝试通过ha-proxy连接 DB 服务器(蟑螂)名称​​ 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连接断开的原因是什么。

1 个答案:

答案 0 :(得分:0)

如果端点之一在没有关闭连接的情况下死亡,

保持连接状态将消失。朝那个方向进行调查。

keepalive真正使连接保持活动的唯一时间是与配置不正确的防火墙有关,该防火墙会丢弃空闲连接。