【问题标题】:NodeJS and MongoDB losing connectionNodeJS 和 MongoDB 失去连接
【发布时间】:2013-05-20 01:12:12
【问题描述】:

我有7 NodeJSMongoose webservices 在Amazon AWS 的一个小实例中运行,MongoDB 在另一个小实例中运行。

一切都在低使用率(cpu、内存和网络流量)下运行,没有任何高峰。

但有时这些NodeJS 服务似乎与MongoDB 失去了联系。不使用Mongoose 的服务中的所有方法都可以正常工作。使用 Mongoose 的人不停地打电话,没有任何回应。我需要重新启动服务才能再次响应。

它是随机发生的,我无法弄清楚它的模式。

另一个奇怪的事情是平均所有服务都一起停止。很少发生只有一个,但确实发生了。

我可以尝试将所有服务分成一个单独的服务器,但这会非常昂贵。但首先我想知道发生了什么并解决它。

有人可以帮我吗?

【问题讨论】:

  • 这听起来很像你的代码有一个错误——在某些情况下——它不会向浏览器发送回响应。这看起来与您描述的完全一样:“没有任何响应的无休止的呼叫”。 @yttrium 关于 Mongoose 自动重新连接是正确的,因此它可能与 Mongoose 完全无关。
  • s one of the things Im 在想。问题是,node 不会抛出任何类型的错误消息,这使得任何分析变得更加困难。
  • 当您不发回响应时,这不是错误情况,您的浏览器只会等待并(最终)超时。也许您可以发布出现问题的路线之一?
  • +1 知道的请写出解决方法

标签: node.js mongodb mongoose


【解决方案1】:

尝试在连接字符串中添加选项 '?auto_reconnect=true' 可能会解决您的问题。

但是,根据文档 Mongoose 默认启用 auto_reconnect。

如果您发布 node.js 和 mongodb 服务器的日志,可能会有更多机会了解发生了什么。

【讨论】:

  • 感谢您的回答钇!问题是连接仍然存在,只是没有关闭,也没有错误日志或消息。它只是停止响应......
  • 尝试升级到最新版本,因为驱动程序中有很多错误修复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-22
  • 2016-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-27
相关资源
最近更新 更多