1

我们面临一个问题,我们的客户将其命名为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 时断开。

4

1 回答 1

0

如果端点之一在没有关闭连接的情况下死亡,Keepalive 就是使连接消失的原因。朝那个方向调查。

keepalive 真正使连接保持活动状态的唯一时间是与配置错误的防火墙连接,该防火墙会丢弃空闲连接。

于 2019-05-09T06:17:23.287 回答