0

我有一个连接到 MongoDB 的 REST API(用 Express + Monk 编写)。该数据库是一个带有 mms 的 MongoDB 副本集设置。

当主节点关闭时,应用程序变得无响应。在 SECONDARY 被选为 PRIMARY 后,它需要手动重启才能再次工作。

配置:

  • Mongodb Replica set (Ver 2.6.7) 配置MMS
  • 总共三个节点(两个数据节点和一个仲裁器)
  • MMS 给出的所有默认配置
  • Node App : Express 与 Monk 作为 mongodb 驱动程序。(我也试过猫鼬,结果一样)

连接字符串:-

mongodb://xxx1.xxx.com:27017, xxx2.xxx.com:27017: 27017/dbname    
with option as 
var options = {
server: {
    socketOptions: {
        keepAlive: 1,
        socketTimeoutMS : 15000,
        connectTimeoutMS: 30000
    }
},
replset: {
    socketOptions: {
        keepAlive: 1,
        socketTimeoutMS : 15000,
        connectTimeoutMS: 30000
    }
}

}

它与我配置错误的东西有关吗?跟mms有关系吗?如何解决这个问题?

更新:我遵循的步骤

  1. 在 Azure Cloud 中创建了 3 三个新 VM,并使用 MMS(一个主、一个辅助和一个仲裁器)为其部署了 mongodb 副本集。
  2. 生成了一个新的快递应用程序。
  3. 添加了僧侣模块
  4. 编写一个简单的 API 连接到副本集(API 将向 db 写入一些内容,然后读取它并作为响应返回)
  5. 从 bash 脚本中不断调用此 API 以确保 API 已启动并正在运行
  6. 重新启动作为主要的机器

即使选择了新的主节点并且所有虚拟机都已备份,API 仍将继续失败。

4

0 回答 0