我在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 } );
因此,如果我动态地向此集添加节点,我需要更新连接到副本集的所有脚本。因此,重新启动它正在运行的任何服务器。无论如何都要包含新节点而不必更新此脚本吗?
答案 0 :(得分:1)
添加(并有条件删除)成员时,您不必更新脚本。你需要的是提供种子清单。基本上你可以提供一个,但不建议这样做,因为它可能会在那时下降。
即使您的副本集中有更多成员,仲裁服务器也应该足够。因此,对于您的三个成员集,两个服务器就足够了。
每个成员都拥有自己的set配置对象副本,并知道主人是谁。甚至不必在种子列表中指定主服务器。