dynamic更改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 } ); 

所以,如果我dynamic地添加一个节点到这个集合,我需要更新连接到副本集合的所有脚本。 因此重新启动它运行的任何服务器。 是否有包含新节点而不必更新此脚本?

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

仲裁服务器应该是足够的,即使您的副本集中有更多的成员。 所以对于你们三位成员来说,两台服务器就够了。

每个成员持有它自己的设置configuration对象的副本,并知道谁是主人。 甚至没有必要在种子列表中指定主人。

看看这里