MongoDB副本心跳请求超过了时间

Iva*_*gin 6 replication sharding mongodb

我有副本集(托管在亚马逊上),它有:

  • 次要
  • 仲裁者

所有这些都是版本3.2.6,这个副本在我的分片集群中制作一个分片(如果这很重要,虽然我认为不是).

当我键入rs.status()主要内容时,它表示无法达到辅助(同样的事情是在仲裁者身上):

        {
        "_id" : 1,
        "name" : "secondary-ip:27017",
        "health" : 0,
        "state" : 8,
        "stateStr" : "(not reachable/healthy)",
        "uptime" : 0,
        "optime" : {
            "ts" : Timestamp(0, 0),
            "t" : NumberLong(-1)
        },
        "optimeDate" : ISODate("1970-01-01T00:00:00Z"),
        "lastHeartbeat" : ISODate("2016-07-20T15:40:50.479Z"),
        "lastHeartbeatRecv" : ISODate("2016-07-20T15:40:51.793Z"),
        "pingMs" : NumberLong(0),
        "lastHeartbeatMessage" : "Couldn't get a connection within the time limit",
        "configVersion" : -1
    }
Run Code Online (Sandbox Code Playgroud)

(顺便看一下optimeDate Oo)

我的日志中的错误是:

[ReplicationExecutor] Error in heartbeat request to secondary-ip:27017; ExceededTimeLimit: Couldn't get a connection within the time limit
Run Code Online (Sandbox Code Playgroud)

奇怪的是,当我进入二级并输入rs.status()一切看起来还可以.此外,我能够从我的主要实例(与mongo --host secondary)连接到辅助,所以我想这不是网络问题.昨天一切正常.

TL; DR我的主要服务器看不到辅助服务器和仲裁服务器看不到辅助服务器,而且我的辅助服务器看不到辅助服务器,而且它在前一天工作正常,我可以从主服务器手动连接到辅助服务器.

任何人都知道什么可能出错?

Tnx,伊万

Wah*_*eed 0

看来次要optimeDate是造成该错误的原因,了解此错误 optimeDate 原因的最佳方法是调查次要机器的当前日期时间,因为它也可能是错误的。不确定您是否仍在寻找答案,但 opttimedate 是问题所在,而不是您的复制集机器之间的连接。