У меня есть набор реплик из 6 монго, которые разделены на: 1 мастер 5 вторичных серверов (3 из которых являются пассивными).
У меня есть служба узла с 4 экземплярами этой службы, которая подключается к набор реплик. Каждый экземпляр подключен к части набора реплик, а не ко всему набору (из-за необходимости, которую мое приложение требует разделить некоторые из БД), разделение таково: у меня есть «основной» набор, который включает в себя мастер и 2 вторичные (которые не являются пассивными).
Первый экземпляр включает в себя только базовый набор - и для примера должен называться «Базовый экземпляр». Остальные подключены к основному набору и только к одной из оставшихся пассивных дБ (каждая вторичная копия используется экземпляром службы моего узла) - и для примера должна называться «Внешний экземпляр».
Я заметил что, когда один из «Внешних экземпляров» завершает работу (поскольку сервер выключен), другие «Внешние экземпляры» имеют ошибку соединения в течение нескольких минут (и через несколько минут служба снова работает нормально).
Ошибка, которая отображается во «Внешних экземплярах» во время завершения работы:
At the docker service:
"error: MongoNetworkError: Connection 46 to {server-name} timed out
at Socket<anonymous> .../node-modules/mongodb-core/lib/connection/connection-js:258:7).
...".
At the localhost:
"Error: read ECONNRESET at tcp. on StreamRead (internal-stream_base_commons.js:167:27)".
Я не понимаю, почему, когда один из «Внешних экземпляров» дает сбой, другие экземпляры имеют проблема в соединении.
На мой взгляд, это или из-за пакета npm (mongodb), или из-за набора реплик.
Моя версия мон go равна 3.6. 5 Пакет mongodb npm: 3.0.10.
Спасибо!
РЕДАКТИРОВАТЬ: Возможно, стоит упомянуть, что мы используем оплог.