1

我们有一个 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;这不是问题,而是:

为什么有时会显示两次主要内容?

4

0 回答 0