1. ホーム
  2. node.js

node.jsはなぜ一度に6つのリクエストしか処理しないのですか?

2023-10-21 01:13:02

質問

私たちは、REST APIを実装したnode.jsサーバーを、わずかに異なる、そして残念ながら非対称のREST APIを持つ中央サーバーへのプロキシとして使用しています。

様々なブラウザで動作するクライアントは、中央サーバーからタスクを取得するためにnodeサーバーに問い合わせます。ノード サーバーは、中央のサーバーからすべてのタスク ID のリストを取得し、クライアントにそれを返します。その後、クライアントはプロキシを通してidごとに2回の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

そして、これらのリクエストのペアが中央のサーバーから結果を得るたびに、別の2行が非常に速く吐き出されます。

つまり、私たちのnode.jsサーバーは、一度に6つのリクエストしか出す気がないようです。

どうすれば解決できますか?

ブラウザの同時接続数の制限です。

一般的なブラウザでは、AJAX (XmlHttpRequest) の同時リクエストはいくつまで許可されていますか?

私は他の答えをupvotedしました、それらは私が問題を診断するのを助けたからです。手がかりは、node のソケットの制限が 5 で、私が一度に 6 を得ていたことでした。6 は、私がサーバーをテストするために使用していた Chrome での制限です。