Понимание keepalive между клиентом и cockroachdb с помощью haproxy - PullRequest
1 голос
/ 08 мая 2019

Мы столкнулись с проблемой, когда наш клиент назовет ее A .Пытается подключить DB имя сервера (Cockroach) 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

Так что вызывает разрыв соединения TCPкогда keepalive включен на каждом конце.

1 Ответ

0 голосов
/ 09 мая 2019

Keepalive - это то, что приводит к потере соединений, если одна из конечных точек умерла, не закрыв соединение.Расследуйте в этом направлении.

Единственный раз, когда средство keepalive фактически поддерживает соединение в активном состоянии, связано с неправильно настроенным межсетевым экраном, который сбрасывает неактивные соединения.

...