当连接到MongoDB副本集并且主要故障(故障转移)时,NodeJS应用程序变为无响应?

时间:2015-01-18 09:53:10

标签: node.js mongodb monk

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

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

配置:

  • Mongodb副本集(Ver 2.6.7)配置了MMS
  • 总共三个节点(两个数据节点和一个仲裁器)
  • MMS提供的所有默认配置
  • 节点应用:使用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. 添加了Monk模块
  4. 编写一个简单的API来连接副本集(API将向db写入内容,然后将其读取并作为响应发送回来)
  5. 继续将此API格式化为bash脚本,以确保API已启动并正在运行
  6. 重新启动充当主要
  7. 的计算机

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

0 个答案:

没有答案