gpt4 book ai didi

javascript - 使用 node.js 写入 MongoDB 副本集

转载 作者:行者123 更新时间:2023-11-30 16:36:20 28 4
gpt4 key购买 nike

我使用 node.js 的 mongodb native 驱动程序连接到 3 个 Node (主 Node 和两个辅助 Node )的副本集,如下所述:http://mongodb.github.io/node-mongodb-native/2.0/api/MongoClient.html

 var MongoClient = require("mongodb").MongoClient;     

var url = "mongodb://admin:pass@hostname:27017";
var options = {
db: {
readPreference: 'primaryPreferred',
slaveOk: true
},
replSet: {
replicaSet: 'rs0'
},
server: {
w: 1,
autoReconnect: true
};

MongoClient.connect(url, options);

请注意,slaveOk: true 没有记录在案,没有它我会不断收到 slaveOk is false 错误。我不断收到 Potentially unhandled rejection [83] MongoError: not master 写入。你能帮忙从 Node 应用程序连接到副本集吗?也许我应该为连接指定所有服务器?但是在文档中说驱动程序足够聪明,可以在 PRIMARY 更改时重新连接。

最佳答案

为了允许客户端根据需要在副本集成员之间切换,你需要告诉它这些备选副本集成员存在。为此,请提供以逗号分隔的所有副本集成员的 URL。

var url = "mongodb://admin:pass@hostname1:27017,mongodb://admin:pass@hostname2:27017,mongodb://admin:pass@hostname3:27017,";

当你想从应用程序中抽象出副本集配置以获得更大的灵 active 时,你可以构建一个分片集群并让应用程序连接到路由器。然后路由器将负责将连接转发到适当的副本集成员

关于javascript - 使用 node.js 写入 MongoDB 副本集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32645982/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com