发生故障转移时没有可用的主服务器:MongoDB、Node.js、Mongoose

发生故障转移时没有可用的主服务器:MongoDB、Node.js、Mongoose,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,在mongodb副本集中发生故障转移时,我当前面临一个问题。应用程序无法重新连接到新选择的主服务器,并且无法执行所有后续写入操作 重新启动应用程序将成功重新连接 故障切换立即发生,并选择新的主设备。但是,应用程序无法连接到新的主应用程序 mongodb版本:3.2.6 猫鼬版本:4.3.4 node.js版本:0.10.26我在三个不同的节点中设置了一个主节点、辅助节点和一个仲裁器。这就是我使用mongoose进行连接的方式,故障切换工作得非常好 mongoose.connect('mongod

在mongodb副本集中发生故障转移时,我当前面临一个问题。应用程序无法重新连接到新选择的主服务器,并且无法执行所有后续写入操作

重新启动应用程序将成功重新连接

故障切换立即发生,并选择新的主设备。但是,应用程序无法连接到新的主应用程序

mongodb版本:3.2.6 猫鼬版本:4.3.4
node.js版本:0.10.26

我在三个不同的节点中设置了一个主节点、辅助节点和一个仲裁器。这就是我使用mongoose进行连接的方式,故障切换工作得非常好

mongoose.connect('mongodb://user:pwd@a.com:27017,b.com:27017,c.com:27017/dbName');

所以,除了mongodb://之外的所有东西都是变量。

我也面临着类似的问题,然后我就改变了

mongoose.connect(db)


现在它工作正常了

我遇到了这个问题,但结果是我试图从一个非白名单的IP访问。

mongoose.connect(url,{useNewUrlParser:true,useUnifiedTopology:true})
像这样使用,它会工作得很好。

需要更多详细信息。mongoose.connect代码是什么样子的?您可以启动服务器详细信息。这与类似,但未提供解决方案。这已通过在rs.conf中替换主机名并将所有主机名替换为ipscan解决。您可以共享更多信息。请共享副本集的配置,例如您为每个副本集分配的优先级,以便在投票后发生故障时,其他机器将接管作为主要机器。--第二,共享您的连接字符串——托管您正在使用的主机,并且可以从主服务器访问您的所有副本集,例如,从api服务器进行白名单ping以检查所有数据库服务器。
mongoose.connect(db, {useNewUrlParser: true})