首页 > 解决方案 > 当主服务器关闭时,MongoDB NodeJS 客户端与副本集的连接不会重新连接

问题描述

MongoClient.connect('mongodb://mongo1,mongo2,mongo3?replicaSet=rs', {
  useUnifiedTopology: true,
}, (err, mongoClient) => {
  setTimeout(() => {
    mongoClient.db("mydb").collection('mycollection').insertOne({...})
  }, 10000)
})

当主节点宕机和使用 UnifiedTopology 时,MongoClient 是否应该重新连接到副本集中的另一个 mongo 实例?因为在这个例子中mongoClient仍然指向旧的主实例。这是预期的行为吗?

编辑

副本集配置

标签: node.jsmongodbreplicaset

解决方案


根据 Mongo 3.4 文档:在 3.4 中:

mongo "mongodb://host1,host2,host3/myDB?replicaSet=myRS"

或者

mongo "mongodb://host1:27017,host2:27017,host3:27017/myDB?replicaSet=myRS"

推荐阅读