Mongodb 当主节点发生故障时,辅助节点不会成为主节点

Mongodb Secondary node not becoming Primary when Primary fails

我正在尝试在 Amazon Ec2 上创建副本集 instances.I 有一个主节点和一个辅助节点 node.If 我在 10 到 12 秒内关闭了主节点的端口 我的辅助节点应该成为主节点但是不是 happening.After 10 分钟,它也处于辅助状态 only.If 我在主服务器上启动 mongodb 它作为辅助启动,并且辅助立即成为主服务器。当我检查配置设置时

 "electionTimeoutMillis" : 10000

rs.config() : 当主节点启动时

rs0:SECONDARY> rs.config();
{
        "_id" : "rs0",
        "version" : 2,
        "protocolVersion" : NumberLong(1),
        "writeConcernMajorityJournalDefault" : true,
        "members" : [
                {
                        "_id" : 0,
                        "host" : "xx.xxx.xx.xx:27017",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {

                        },
                        "slaveDelay" : NumberLong(0),
                        "votes" : 1
                },
                {
                        "_id" : 1,
                        "host" : "xx.xxx.xxx.xx:27017",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {

                        },
                        "slaveDelay" : NumberLong(0),
                        "votes" : 1
                }
        ],
        "settings" : {
                "chainingAllowed" : true,
                "heartbeatIntervalMillis" : 2000,
                "heartbeatTimeoutSecs" : 10,
                "electionTimeoutMillis" : 10000,
                "catchUpTimeoutMillis" : -1,
                "catchUpTakeoverDelayMillis" : 30000,
                "getLastErrorModes" : {

                },
                "getLastErrorDefaults" : {
                        "w" : 1,
                        "wtimeout" : 0
                },
                "replicaSetId" : ObjectId("5e26f399cf82d4f8bf826660")
        }
}

查看您的配置,您似乎正在使用偶数节点,这会导致主节点的选举出现问题。

这篇 blog 可能会对您有所帮助。

有关详细信息,请参阅 Replication in MongoDB

在双成员副本集中,如果任何节点(主要或次要)发生故障,则其余节点只能是次要节点。如果主服务器出现故障,则辅助服务器无法成为主服务器。如果辅助节点出现故障,主节点将降级为主节点并成为辅助节点。

当副本集中只有一个节点时,无法进行任何数据复制(副本集是关于数据复制的,对吧?)。

一旦第二个节点再次备份,就会进行选举,其中一个节点成为主节点。一旦有一个主要的,写入就可以发生并且数据复制将开始。