尽管高maxSockets,Nodejs出站HTTP请求仍然延迟

时间:2014-12-01 00:04:53

标签: node.js proxy node-http-proxy

我正在Mac OS X 10.9.5上本地开发一个node.js应用程序,它代理对另一台服务器上的大文件的请求。我尝试使用node-http-proxy编写我的应用程序,还使用简单的http / request one-liner(req.pipe(request())。pipe(res))。两者都工作正常,直到我开始制作30个同时向我的代理请求大型(90MB)文件的请求。告诉后端服务器上的访问日志,我可以看到只有一部分代理请求立即出现。其他人在几秒钟内,有时几分钟后涓涓细流。在某些情况下,后面的出站请求与立即到达的某些请求的完成相对应,而在其他情况下,我看不到解锁请求的模式。立即向后端服务器发出请求的数量不一致。我已经尝试将http.globalAgent.maxSockets设置为比我的30个请求大得多的数字,但这没有什么区别。关于什么可能延迟我的出站HTTP请求的子集的任何其他想法?谢谢!

1 个答案:

答案 0 :(得分:0)

请注意,(至少)有两个出站HTTP套接字池。您已使用http.globalAgent.maxSockets为出站http连接正确配置了一个,但是,还有另一个用于https连接,https.globalAgent.maxSockets

就像复习一样。来自node docs on the matter

  

<强> agent.maxSockets #

     

默认设置为5.确定代理可以为每个源打开多少个并发套接字。来源&gt;是一个&#39;主机:端口&#39;或者&#39; host:port:localAddress&#39;组合