2

我在javascript中使用mongodb和它的本机驱动程序。

您可以通过指定集合中的节点来连接到副本集:

var mainReplSet = new MongoDB.ReplSet([ 
                new MongoDB.Server( '0.0.0.0, 27017, { auto_reconnect: true } ),
                new MongoDB.Server( '0.0.0.0', 27017, { auto_reconnect: true } ),
                new MongoDB.Server( '0.0.0.0', 27017, { auto_reconnect: true } )
            ], { rs_name:'ReplicaSetName', readPreference: MongoDB.ReadPreference.NEAREST } );

因此,如果我动态地将一个节点添加到这个集合中,我需要更新所有连接到副本集的脚本。因此重新启动它正在运行的任何服务器。无论如何都可以包含新节点而无需更新此脚本?

4

1 回答 1

2

您不必在添加(和有条件地删除)成员时更新脚本。你需要的是提供一个种子列表。基本上你可以提供一个,但不建议这样做,因为那时它可能会下降。

即使您的副本集中有更多成员,仲裁服务器也应该足够了。因此,对于您的三个成员集,两台服务器就足够了。

每个成员都拥有自己的设置配置对象副本,并且知道谁是主人。在种子列表中指定主人甚至不是强制性的。

看看这里

于 2013-09-23T20:09:46.450 回答