ホームページ > 記事 > ウェブフロントエンド > Nodejs は受信リクエストの最大数を設定します
nodejs は、イベント駆動型のノンブロッキング I/O に基づいたオープンソースのバックエンド JavaScript ランタイム環境です。 nodejs の独自のノンブロッキング I/O モードにより、多数の同時接続を処理でき、優れたパフォーマンスが得られます。
ただし、nodejs のデフォルトの最大リクエスト制限は、大量のリクエストを処理するときに問題になる可能性があります。この記事では、nodejs で受信するリクエストの最大数を設定し、アプリケーションのパフォーマンスと信頼性を向上させる方法について詳しく説明します。
nodejs では、http.Server オブジェクトが、受信した HTTP リクエストを受け入れて処理します。 http.Server オブジェクトは、起動時にデフォルトの最大リクエスト制限を設定します。これは、同時に処理できるクライアント リクエストの数です。リクエストの最大制限を超えると、リクエストは拒否されます。デフォルトでは、nodejs の最大リクエスト数は 2^16、つまり約 64K です。これは、64,000 人のユーザーが同時にアプリケーションに接続しようとした場合、それらのリクエストのほとんどが拒否されることを意味します。これは、アプリケーションのパフォーマンスと信頼性に重大な影響を与えます。
nodejs のリクエストの最大制限を設定するには、http.Server オブジェクトの maxConnections プロパティを変更する必要があります。このプロパティは、クライアント要求の最大数を設定します。このプロパティのデフォルト値は Infinity で、制限がないことを意味します。適切な数を選択して最大接続数を設定し、要求の拒否の問題を回避できます。最大接続数を変更する方法のサンプル コードは次のとおりです。
const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World!'); }); server.maxConnections = 10000; // 设置最大连接数为 10000 server.listen(8080);
上の例では、最大接続数を 10000 に設定します。これは、最大 10,000 のクライアントが同時に接続できることを意味します。クライアント接続の数がこの制限を超えると、アイドル状態の接続が使用可能になるまで待機キューに入れられます。
maxConnections を設定しても、アプリケーションのパフォーマンスがすぐに向上するわけではないことに注意してください。これは単なる制限であり、サーバー ハードウェア (CPU、メモリ、ネットワーク帯域幅など) がパフォーマンスのボトルネックになる可能性があります。したがって、ハードウェア構成とアプリケーション構成の間でトレードオフとバランスをとる必要があります。
nodejs の最大リクエスト制限をテストするには、ApacheBench や Siege などの同時リクエスト テスト ツールを使用します。これらのツールは、大量のシミュレートされたクライアント リクエストを生成して、高負荷時のサーバーのパフォーマンスと安定性をテストできます。
以下は、ApacheBench を使用したベンチマークの例です。 10 秒間に同時接続を使用して 100000 リクエストを送信します。
ab -n 100000 -c 10000 -k http://localhost:8080/
上記のコマンドでは、-n オプションは送信されたリクエストの数を示し、-c オプションは同時接続の数を示し、- k オプションは、キープアライブを使用して接続の再利用を最適化することを示します。ニーズに合わせて変更および調整できます。
最大リクエスト制限の設定に加えて、nodejs アプリケーションのパフォーマンスと信頼性を向上させるための他の手順を実行できます。役立つヒントとコツをいくつか紹介します。
概要
nodejs の最大リクエスト制限を設定すると、特に多数のリクエストを処理する場合に、アプリケーションのパフォーマンスと信頼性が向上します。 maxConnections プロパティを設定し、サーバー ハードウェア構成を増やし、同時リクエスト テスト ツールを使用してパフォーマンスをテストして最適化します。これらのヒントを組み合わせることで、nodejs アプリケーションのパフォーマンスと信頼性を最大化し、ユーザーにより良いエクスペリエンスを提供できます。
以上がNodejs は受信リクエストの最大数を設定しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。