NodeRED - 使用多个HTTP请求连接ECONNREFUSED

时间:2016-08-11 13:04:01

标签: javascript node.js http node-red

当我们使用 NodeRED 在我们的NodeJS API服务器上使用 HTTP请求执行大量请求时,我们遇到了一个问题。

顺便说一句,我们还使用他在请求库上实现的WWW Request节点对此进行了测试。结果是一样的:(

这是错误堆栈跟踪:

error:
  { message: 'Error: connect ECONNREFUSED 163.113.172.80:1337',
    source:
     { id: '5d2aa78c.a2d558',
       type: 'http-request',
       name: undefined,
       count: 1 },
    stack: 'Error: connect ECONNREFUSED 163.113.172.80:1337\n    at
    Object.exports._errnoException (util.js:856:11)\n    at
    exports._exceptionWithHostPort (util.js:879:20)\n    at
    TCPConnectWrap.afterConnect [as oncomplete] (net.js:1062:14)' } }

当然,我们使用Apache Benchmark(ab CLI)测试了我们的API服务器,但成功(无故障)和API率为500 req / s。

技术信息:

  • Node-RED版本:v0.14.5
  • Node.js版本:v5.5.0
  • Windows_NT 6.1.7601 x64 LE
  • 处理器:Intel Xeon CPU E5-630 v3 3.70Ghz 8核心
  • 内存:64 Gb

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我们通过设置max sockets值找到了一种解决方法:

http.globalAgent.maxSockets = 100;
https.globalAgent.maxSockets = 100; 

默认情况下,HTTP(S)全局代理最大套接字值似乎是无限的......