Сброс соединения по одноранговой сети - с драйвером 2.8.0 и mongo 4.0.9 в кластере k8s - PullRequest
0 голосов
/ 24 июня 2019

Мы получили ошибки Монго «Сброс соединения по одноранговой сети» в нашей настройке. Описание настройки:

  • Монго работает как репликационный набор в кластере k8s на EKS
  • клиентов (C #), работающих в одном кластере k8s на EKS
  • Монго 4,0,9
  • C # драйвер 2.8.0
  • Пул подключений включен
  • Максимальное время простоя установлено на 10 минут (значение по умолчанию превышает 10 секунд)
  • Максимальное время жизни соединения установлено на 10 минут (значение по умолчанию превышает 10 с)

Мы получаем эти ошибки. Мы заметили, что при наличии серии вызовов, скажем, 500 вызовов для выбора на основе ключей, проблем не возникает. Затем мы делаем паузу на 5 минут и повторяем тест, когда в первый раз получаем «Сброс соединения по пиру». Позже тест продолжается. Это происходит каждый раз после паузы.

Это условие повторяется с реальным поведением пользователей, могут быть всплески активности, а затем затишье. Как следствие, мы продолжаем получать «Сброс соединения по одноранговым узлам» в критически важных частях бизнес-процесса. На стороне клиента решение состоит в том, чтобы выполнить защитное кодирование и повторить вызов, но это изменение во многих местах.

Попытка других комбинаций:

  • Монго 4.0.9
  • C # драйвер 2.8.0
  • Пул подключений включен
  • Максимальное время простоя 120 минут
  • максимальное время подключения 60 минут

Однако никаких изменений в поведении.

Нам кажется, что, хотя TCP-соединение закрыто на стороне сервера, клиент по-прежнему считает его допустимым и пытается использовать его, что приводит к этой ошибке.

Кто-нибудь еще сталкивался с такой ситуацией? Будем благодарны за любые предложения, будем рады предоставить больше информации, если это необходимо.

...