mongodb - Sails-mongo 自动故障转移
问题描述
我在我的 nodejs 应用程序中使用sails-mongo,我的配置如下所示:
mongoDb: {
adapter: 'sails-mongo',
url: 'mongodb://prod_user:prod_password@router-1-incloud:16888,router-2-incloud:16888/db_name',
auto_reconnect: true,
poolSize: parseInt(process.env.MONGO_POOL_LIMIT) || 10,
w: parseInt(process.env.MONGO_WRITE_CONCERT_INT) || 'majority',
reconnectInterval: 200,
wtimeout: parseInt(process.env.MONGO_WRITE_TIMEOUT_MS) || 2000,
retryMiliSeconds: 200,
numberOfRetries: 3,
readPreference: process.env.MONGO_READ_PREFERENCE || 'primaryPreferred',
socketOptions: {
noDelay: true,
keepAlive: 0,
connectTimeoutMS: parseInt(process.env.MONGO_CONNECT_TIMEOUT_MS) || 2000,
socketTimeoutMS: parseInt(process.env.MONGO_SOCKET_TIMEOUT_MS) || 2000
}
因此,即使我重新启动我的应用程序,当router-1-incloud:16888
出现故障时驱动程序也不会切换到router-2-incloud:16888
,它总是需要两个路由器都可用,否则它不会建立与 mongo 的连接。是否有我需要调整的配置值,以便它自动切换到任何可用的主机?
解决方案
推荐阅读
- powershell - powershell中的Unicode
- php - 尊重 Laravel 刀片中的换行符
- laravel - 由于外键无法更新记录
- java - Apache Beam 中的窗口数据每小时(顺时针)基础
- c++ - c ++ 11(MSVS2012)正则表达式在多行std :: string中查找文件名
- java - 使用 JeMalloc 查找 Java 应用程序中的本机内存泄漏
- ios - 在应用程序运行后,是否可以在 ui 测试中以编程方式将应用程序移动到拆分视图/滑块视图?
- node.js - 如何获取 Alexa 设备的时区或本地时间
- php - Divi Builder 编辑器未显示
- java - 无法单击未使用 Appium Java for Android 应用程序启用的按钮