debugging节点集群中的未捕获exception(ECONNRESET)

在使用集群模块的node.js应用程序中,我间歇性地看到类似这样的错误:

events.js:71 throw er; // Unhandled 'error' event ^ Error: read ECONNRESET at errnoException (net.js:863:11) at TCP.onread (net.js:524:19) 

这使我的整个应用程序,到目前为止,我已经能够处理这些的唯一方法是通过绑定一个process.on('uncaughtException') 。 我想找出潜在的原因,但上面的堆栈跟踪是相当无用的。

有什么方法可以找出造成这些exception的原因吗?

我应该注意到,我只在集群中看到这些信息,而不是工作人员,这让我怀疑它们与集群模块向工作人员分配连接的方式有什么关系。

这个答案是有帮助的: https : //stackoverflow.com/a/11542134/233370

基本上,我安装了longjohn ,然后能够得到完整的asynchronous堆栈跟踪找出潜在的原因(在我的情况下rabbit.js)。

看来,默认快速启用保持活动。 为了在响应后closures连接,可以添加res.set("Connection", "close");

或者,您可以在您的应用程序中添加中间件,以在每次响应后closures连接:

  app.use(function(req, res, next) { res.set("Connection", "close"); next(); });