Mongodb - 副本集 - 最大连接数
Mongodb - replica set - max connections
我有一个包含 3 个 mongo 节点、1 个主节点、1 个辅助节点和 1 个仲裁节点的副本集。
连接到这个副本集,我有 20 个节点进程,在 20 个不同的服务器上使用它们自己的连接到副本集。所有这些过程都使用 mongoose.
我的主要副本集显示如下:
rsProd:PRIMARY> db.serverStatus().connections
{ "current" : 284, "available" : 50916, "totalCreated" : NumberLong(42655) }
有时,当我重新启动一些 nodejs 节点时,我会遇到以下错误:
mongodb no valid seed servers in list
我到副本集的连接字符串如下:
"mongodb://mongo2aws.abcdef:27017/dbname,mongo1.abcdef:27017/dbname"
我的数据库选项如下:
config.db_options = {
user: "MYUSER",
pass: "MYPASSWORD",
replset: {
rs_name: "RSNAME",
ssl: true,
sslValidate:false,
sslCA: ca,
ca: ca,
sslKey: key,
sslCert: key
},
socketOptions : {
keepAlive : 1,
connectTimeoutMS : 1000
},
server: {
ssl: true,
sslValidate:false,
sslCA: ca,
ca: ca,
sslKey: key,
sslCert: key
},
auth: {
authdb: 'MYAUTHDB'
}
};
当我 运行 只有 16 个节点进程时,我没有出现此错误。
据此我想我已经达到了最大并发连接数的限制或类似的东西。
但是,如果我再次重启崩溃的节点,它似乎终于可以工作了。
为什么 mongo / mongo 引发此错误?
我能做些什么来防止这个/增加限制?
提前致谢
最好的问候。
通过增加 ulimit 打开文件解决
AWS EC2 ubuntu 服务器中打开文件的默认 ulimit 默认设置为 1000。
此外,添加重新连接选项可防止出现此问题:
config.db_options.reconnectTries=10;
config.db_options.reconnectInterval=500;
config.db_options.poolSize=20;
config.db_options.connectTimeoutMS=5000;
我有一个包含 3 个 mongo 节点、1 个主节点、1 个辅助节点和 1 个仲裁节点的副本集。
连接到这个副本集,我有 20 个节点进程,在 20 个不同的服务器上使用它们自己的连接到副本集。所有这些过程都使用 mongoose.
我的主要副本集显示如下:
rsProd:PRIMARY> db.serverStatus().connections
{ "current" : 284, "available" : 50916, "totalCreated" : NumberLong(42655) }
有时,当我重新启动一些 nodejs 节点时,我会遇到以下错误:
mongodb no valid seed servers in list
我到副本集的连接字符串如下:
"mongodb://mongo2aws.abcdef:27017/dbname,mongo1.abcdef:27017/dbname"
我的数据库选项如下:
config.db_options = {
user: "MYUSER",
pass: "MYPASSWORD",
replset: {
rs_name: "RSNAME",
ssl: true,
sslValidate:false,
sslCA: ca,
ca: ca,
sslKey: key,
sslCert: key
},
socketOptions : {
keepAlive : 1,
connectTimeoutMS : 1000
},
server: {
ssl: true,
sslValidate:false,
sslCA: ca,
ca: ca,
sslKey: key,
sslCert: key
},
auth: {
authdb: 'MYAUTHDB'
}
};
当我 运行 只有 16 个节点进程时,我没有出现此错误。 据此我想我已经达到了最大并发连接数的限制或类似的东西。
但是,如果我再次重启崩溃的节点,它似乎终于可以工作了。
为什么 mongo / mongo 引发此错误? 我能做些什么来防止这个/增加限制?
提前致谢 最好的问候。
通过增加 ulimit 打开文件解决
AWS EC2 ubuntu 服务器中打开文件的默认 ulimit 默认设置为 1000。
此外,添加重新连接选项可防止出现此问题:
config.db_options.reconnectTries=10;
config.db_options.reconnectInterval=500;
config.db_options.poolSize=20;
config.db_options.connectTimeoutMS=5000;