我们有一个 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
;这不是问题,而是:
为什么有时会显示两次主要内容?