Por que o node.js processa apenas seis solicitações por vez?

Temos um servidor node.js que implementa uma API REST como um proxy para um servidor central que possui uma API REST ligeiramente diferente e, infelizmente, assimétrica.

Nosso cliente, que é executado em vários navegadores, solicita que o servidor do nó obtenha as tarefas do servidor central. O servidor do nó obtém uma lista de todos os ids da tarefa da central e os retorna ao cliente. O cliente então faz duas chamadas da API REST por id através do proxy.

Tanto quanto eu posso dizer, tudo isso é feito de forma assíncrona. No log do console, é assim quando inicio o cliente:

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

Isso leva alguns segundos para obter a lista do servidor central. Assim que obtém a resposta, o servidor baralha tudo muito rapidamente:

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

Então, cada vez que um par desses pedidos obtém um resultado do servidor central, outras duas linhas são liberadas rapidamente.

Assim, parece que o nosso servidor node.js está apenas disposto a ter seis pedidos de cada vez.

questionAnswers(5)

yourAnswerToTheQuestion