У нас есть набор реплик mongodb с 3 узлами (db01-03), работающий как набор реплик «rs0».
При получении информации о хостах через MongoClient::getHosts()
, о первичном сервере ИНОГДА сообщается дважды, один раз как часть rs0, один раз автономный (так кажется?):
{
"db01.example.com:27017;rs0;...": {
"host": "db01.example.com",
"port": 27017,
"health": 1,
"state": 2,
"ping": 0,
"lastPing": 1475144757
},
"db02.example.com:27017;rs0;........": {
"host": "db02.example.com",
"port": 27017,
"health": 1,
"state": 1,
"ping": 0,
"lastPing": 1475144757
},
"db03.example.com:27017;rs0;.......": {
"host": "db03.example.com",
"port": 27017,
"health": 1,
"state": 2,
"ping": 0,
"lastPing": 1475144757
},
"db02.example.com:27017;-;.......": {
"host": "db02.example.com",
"port": 27017,
"health": 1,
"state": 1,
"ping": 0,
"lastPing": 1475143739
}
}
Почему это происходит, это намеренно / случайно или что-то, о чем мы должны беспокоиться?
Проблема в том, что наш мониторинг регулярно сравнивает «заявленные хосты» с «ожидаемыми хостами», и с тех пор мы получаем предупреждения 4 !== 3
,
PS: Конечно, мы могли бы исправить предупреждения, сравнив $actual<$expected
; это не вопрос, но:
Почему основной иногда показывается дважды?
Задача ещё не решена.
Других решений пока нет …