Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB:如何解决连接超时错误?_Mongodb_Mongoose - Fatal编程技术网

MongoDB:如何解决连接超时错误?

MongoDB:如何解决连接超时错误?,mongodb,mongoose,Mongodb,Mongoose,我正在使用mongoosejs连接到mongodb,这是我的连接选项 const optionsMongoose = { poolSize: 10, bufferMaxEntries: 0, connectTimeoutMS: 10000, socketTimeoutMS: 45000, family: 4 }; mongoose.connect(process.env.MONGO_URI,optionsMongoose); 但是一段时间后,所有对MongoDB的

我正在使用
mongoosejs
连接到
mongodb
,这是我的连接选项

const optionsMongoose = {
  poolSize: 10, 
  bufferMaxEntries: 0,
  connectTimeoutMS: 10000, 
  socketTimeoutMS: 45000,
  family: 4 
}; 

mongoose.connect(process.env.MONGO_URI,optionsMongoose);

但是一段时间后,所有对
MongoDB
的请求都将开始超时。在我的DB监控工具中,我可以看到当前的实时连接是10,但当前没有向服务器发出请求。我确信我在连接选项方面做错了什么。请帮我找出答案?

您是否尝试过
保持连接
重新连接

mongoose.connect(myUri, {
  socketTimeoutMS: 45000,
  keepAlive: true,
  reconnectTries: 10
});
试试上面的方法,看看是否有帮助。我们需要知道是正在关闭连接,还是您的
code/find
出现问题

关于:

对于长时间运行的应用程序,启用keepAlive通常是谨慎的。 如果没有它,一段时间后你可能会开始看到“连接” 似乎没有理由的“关闭”错误。若有,请在阅读 为此,您可以决定启用keepAlive:


潜在重复:@Derek我认为这是一个不同的问题。Mongoose应该处理您标记的问题中提到的问题。您在哪里部署Mongoose?是否为入站请求启用端口?如果您在某些云上使用localhost,请将其更改为0.0.0.0。你能在cli上运行MongoDB命令吗?@mehta rohan mongoose在aws elb上,在最初的几个请求中工作正常。你可以共享代码吗?谢谢。我刚读到keepAlive,我想你是对的。我会等到明天,然后我会让你知道它是否工作,因为它总是在第二天下降。我没有添加keepAlive,但将我的mongoose更新为
5.2.0
,因为keepAlive是此版本的默认设置。让我知道它是如何运行的,这对我来说也很有趣。