Meteor,MongoDB多重oplog设置

Meteor,MongoDB多重oplog设置,mongodb,meteor,replication,Mongodb,Meteor,Replication,我有一个Meteor项目,复制了两个mongoDB服务器 它工作得很好,但当我测试一些DB错误模拟时, mongoDB复制的主要选择和多oplog设置与我的想法不同 这是我的Meteor和MongoDB设置 - MongodB - rs.conf() { "_id" : "meteor", "version" : 6, "members" : [ { "_id" : 0

我有一个Meteor项目,复制了两个mongoDB服务器 它工作得很好,但当我测试一些DB错误模拟时, mongoDB复制的主要选择和多oplog设置与我的想法不同

这是我的Meteor和MongoDB设置

- MongodB -
rs.conf()
{
        "_id" : "meteor",
        "version" : 6,
        "members" : [
                {
                        "_id" : 0,
                        "host" : "hostname1:27017",
                        "priority" : 2.5
                },
                {
                        "_id" : 1,
                        "host" : "hostname2:27017",
                        "priority" : 1.5
                }
        ]
}

rs.status()
{
        "set" : "meteor",
        "date" : ISODate("2014-10-08T10:40:38Z"),
        "myState" : 1,
        "members" : [
                {
                        "_id" : 0,
                        "name" : "hostname1:27017",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 462,
                        "optime" : Timestamp(1412764634, 2),
                        "optimeDate" : ISODate("2014-10-08T10:37:14Z"),
                        "electionTime" : Timestamp(1412764612, 1),
                        "electionDate" : ISODate("2014-10-08T10:36:52Z"),
                        "self" : true
                },
                {
                        "_id" : 1,
                        "name" : "hostname2:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 234,
                        "optime" : Timestamp(1412764634, 2),
                        "optimeDate" : ISODate("2014-10-08T10:37:14Z"),
                        "lastHeartbeat" : ISODate("2014-10-08T10:40:37Z"),
                        "lastHeartbeatRecv" : ISODate("2014-10-08T10:40:37Z"),
                        "pingMs" : 141,
                        "syncingTo" : "hostname2:27017"
                }
        ],
        "ok" : 1
}


- Meteor Environment - 
MONGO_OPLOG_URL=mongodb://hostname1:27017,hostname2:27017/local MONGO_URL=mongodb://hostname1:27017/sports meteor
我假设如果我终止DB hostname1,那么hostname2应该由Primary选择,这样我的Meteor服务器就可以将其OPLOG URL重定向到它

但当我终止hostname1时,hostname2仍然是次要的,Meteor找不到任何oplog服务器

即使在我终止hostname2时,hostname1(主服务器)也被更改为次服务器,所以Meteor也找不到任何oplog服务器

我想我错过了一件大事,但我想不出来

有人知道这件事吗


提前感谢。

您的MONGO_URL需要包含副本集的两个成员。Meteor是在mongo的节点驱动程序上构建的,因此必须知道副本集的两个成员,才能优雅地进行故障切换。

哦,看来我完全没有听清你说的话。所以方法就是像我在MONGO_OPLOG_URL中那样使用逗号?正确!唯一的区别是MONGO_OPLOG_URL从“本地”数据库读取的数据。