問題タブ [node-cluster]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1989 参照

node.js - Node JS サーバー アプリケーションのスループットを向上させる手順

POSTリクエストボディを介してjsonデータ(約1KB)を受け入れる非常に単純なnodejsアプリケーションがあります。応答はすぐにクライアントに送り返され、json は非同期で Apache Kafka キューにポストされます。同時リクエストの数は 1 秒あたり 10000 に達する可能性があり、3 台の異なるマシンで実行されている Apache Jmeter を使用してシミュレートしています。目標は、失敗したリクエストなしで 1 秒未満の平均スループットを達成することです。

4 コアのマシンでは、アプリは 1 秒あたり最大 4015 のリクエストをエラーなく処理します。ただし、目標は 1 秒あたり 10000 リクエストであるため、ノード アプリをクラスター化された環境にデプロイしました。

同じマシンでのクラスタリングと、2 台の異なるマシン間のクラスタリング (ここで説明) の両方が実装されました。Nginx は、2 つのノード インスタンス間で着信リクエストをラウンド ロビンするためのロード バランサーとして使用されました。スループットが大幅に向上することを期待していましたが (ここに記載されているように)、結果は逆でした。成功したリクエストの数は、1 秒あたり約 3100 リクエストに減少しました。

私の質問は次のとおりです。

  1. クラスタ化されたアプローチで何がうまくいかなかったのでしょうか?
  2. これは Node アプリケーションのスループットを向上させる正しい方法ですか?
  3. また、Tomcat コンテナー内の Java Web アプリケーションで同様の演習を行ったところ、1 つのインスタンスで 4000 の要求が期待どおりに実行され、2 つのインスタンスを持つクラスターで約 5000 の成功した要求が実行されました。これは、nodejs が Tomcat よりも優れているという私たちの信念と矛盾しています。リクエストモデルごとのスレッドのため、Tomcatは一般的に優れていますか?

よろしくお願いします。

0 投票する
1 に答える
62 参照

javascript - ワーカー NodeJS から値を合計する

何かを並行して計算するマスターとワーカーがあります。

それらの結果をどのように要約しますか?

各ワーカーが仕事を終えた後、彼は自殺し、「res」変数には値がないため、変数に累積することは不可能です。

何か方法はありますか?