一尘不染

为什么node.js一次只能处理六个请求?

node.js

我们有一个node.js服务器,该服务器将REST API实施为中央服务器的代理,而中央服务器具有一个略有不同且不对称的REST API。

我们的客户端运行在各种浏览器中,它要求节点服务器从中央服务器获取任务。节点服务器从中央服务器获取所有任务ID的列表,并将其返回给客户端。然后,客户端通过代理对每个ID进行两次REST
API调用。

据我所知,这些工作都是异步完成的。在控制台日志中,启动客户端时,它看起来像这样:

Requested GET URL under /api/v1/tasks/*: /api/v1/tasks/

从中央服务器获取列表需要花费几秒钟的时间。一旦获得响应,服务器就会很快将其拒绝:

Requested GET URL under /api/v1/tasks/id/:id :/api/v1/tasks/id/438
Requested GET URL under /api/v1/workflow/id/:id :/api/v1/workflow/id/438
Requested GET URL under /api/v1/tasks/id/:id :/api/v1/tasks/id/439
Requested GET URL under /api/v1/workflow/id/:id :/api/v1/workflow/id/439
Requested GET URL under /api/v1/tasks/id/:id :/api/v1/tasks/id/441
Requested GET URL under /api/v1/workflow/id/:id :/api/v1/workflow/id/441

然后,每当一对这样的请求从中央服务器得到结果时,就会非常快速地禁止另外两行。

因此,看来我们的node.js服务器只愿意一次发出六个请求。


阅读 369

收藏
2020-07-07

共1个答案

一尘不染

我已对其他答案进行了投票,因为它们帮助我诊断了问题。提示是该节点的套接字限制为5,而我一次得到6。Chrome中的限制是6,这就是我用来测试服务器的限制。

2020-07-07