动态更改MongoDB ReplicaSet中的节点

时间:2013-09-23 18:45:19

标签: javascript node.js mongodb

我在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 } );

因此,如果我动态地向此集添加节点,我需要更新连接到副本集的所有脚本。因此,重新启动它正在运行的任何服务器。无论如何都要包含新节点而不必更新此脚本吗?

1 个答案:

答案 0 :(得分:1)

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

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

每个成员都拥有自己的set配置对象副本,并知道主人是谁。甚至不必在种子列表中指定主服务器。

Have a look here