我正在使用 mongodb 及其 JavaScript 中的 native 驱动程序。
您可以通过指定集合中的 Node 来连接到副本集:
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 } );
因此,如果我向此集合动态添加 Node ,我需要更新连接到副本集的所有脚本。因此,重新启动它正在运行的任何服务器。是否有办法在不更新此脚本的情况下包含新 Node ?
最佳答案
您不必在添加(和有条件删除)成员时更新脚本。您需要的是提供种子列表。基本上你可以提供一个,但是不建议这样做,因为到时候可能会宕机。
即使副本集中有更多成员,仲裁服务器也应该足够。因此,对于您的三个成员集,两台服务器就足够了。
每个成员都拥有自己的集合配置对象副本,并且知道谁是主控者。甚至不需要在种子列表中指定 master。
关于javascript - 动态更改 MongoDB ReplicaSet 中的 Node ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18966543/