Почему php MongoClient ::getHosts показывает больше хостов, чем узлов?

#php #mongodb #mongodb-replica-set

#php #mongodb #mongodb-replica-set

Вопрос:

У нас есть набор реплик 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 ; это не вопрос, но:

Почему основной иногда отображается дважды?