問題タブ [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.
node.js - nodejs でクラスターとの tcp 接続を処理する方法
nodejsでクラスターとのtcp接続を処理する方法を理解しようとしています。マスターは、接続をどの子にルーティングする必要があるかをどのように認識しますか。このケースを処理する必要がありますか、それともノードが単独で処理しますか?
node.js - NodeJSのクラスターモジュールを使用して、複数のコアでsocketioサーバーを適切に実行するには?
ソケット IO サーバーは、NodeJ の単一インスタンスで正常に動作しています。しかし、NodeJS のクラスター モジュールを使用して複数のコアでサーバーを実行すると、「ハンドシェイク応答を受信する前に接続が閉じられました」というエラーが表示されます。その理由をググってみたところ、
問題の本質は、サーバーまたは複数のサーバーで複数の Node アプリ スレッド (ワーカー) を実行すると、socket.io クライアント接続がクラスターによってランダムなラウンドロビン方式でルーティングされ、ハンドシェイク/承認された io クライアント リクエストが処理されることです。混乱が始まる場所で、握手/承認されていない労働者に。 ソースリンク
私はそれを機能させるためにいくつかのことを試みましたが、これまでのところ成功していません。これがコードです
ファイル: ./config/socketio
ドキュメントで提案されているように、redis用のアダプターも使用してみました。
このセットアップは時々機能しますが、常に機能するとは限りません。欠けている点がわかりません。
javascript - Node.js クラスター
動的 Web ページを提供する Node.js でアプリケーションを作成しています。このアプリケーションを複数の CPU コアにスケーリングしたいので、クラスターを使用して各 CPU コアのワーカーを作成することにしました。
また、頻繁にポーリングして変更をチェックする必要があるサードパーティ API も使用しており、多くの場合、ユーザー入力に基づいてクエリを実行してキャッシュする必要があります。この API にはレート制限があるため、API のインスタンスを 1 つにして、すべてのワーカー間でキャッシュしたいと考えています。
複数のワーカー間でリソース (キャッシュとサードパーティ API) を共有して通信するための最良の方法は何ですか? リソース用に別のワーカーを作成する必要がありますか、それともマスター ワーカーを使用する必要がありますか?
javascript - Node.js クラスターのワーカーとマスターの間のコールバック
動的ページを提供する多数のワーカーを持つ Node アプリケーションがあります。各ワーカーは、サードパーティ API からの情報を検索してキャッシュするためのメソッドを含む中央オブジェクトにアクセスできる必要があります。このオブジェクトはマスター プロセス上にあるため、ワーカーは簡単に通信できます。
キャッシュと API メソッドに簡単にアクセスして、ワーカー プロセスのコールバックで応答を取得できるようにしたいと考えています。例: API (またはキャッシュされている場合はキャッシュ) からユーザーを取得したい場合getUser('userID', callback)
、callback はユーザーの詳細と共に呼び出される関数、またはエラーが発生した場合はエラーのようなものを呼び出します。
これを行う簡単な方法はありますか?または私はそれをひどく設計しましたか?複数のワーカー間で何かの単一のインスタンスを共有するより良い方法はありますか?
node.js - Websocket を使用したノード クラスタリング
マスターが http 要求に応答するノードクラスターがあります。サーバーは、( socket.ioを介して) websocket 接続もリッスンします。クライアントは、前述の WebSocket を介してサーバーに接続します。ここで、クライアントはさまざまなゲームから選択します (各ノード プロセスがゲームを処理します)。
私が持っている質問は次のとおりです。
- ノードプロセスごとに新しい接続を開く必要がありますか? 正確なノード プロセス X に接続する必要があることをクライアントに伝えるにはどうすればよいですか? (サーバーは着信接続要求をその上で処理する可能性があるため)
- 新しい接続を開く必要がないように、ノードプロセスにソケットを渡すことは可能ですか?
- (マスター プロセスで) 1 つの接続のみを使用し、ユーザー メッセージをそれぞれのノード プロセスに渡し、プロセス メッセージをユーザーに戻す場合の欠点は何ですか? (プロセス間でメッセージを送信するときに、かなり大きなオブジェクトをコピーするのに多くのCPUがかかると感じます)
node.js - intellij を使用したノード js サーバーのリモート デバッグ
リモートNode jsサーバーのデバッグに関する多くの投稿を見て、多くのソリューションを試しましたが、構成を機能させることができませんでした
次の「Node.js リモート デバッグ」構成で Intellij を Windows PC にインストールしました: Host:my-server.dev.com Port:5858
ノードサーバー自体は、次のポート転送ルールが定義された UBUNTU にインストールされます: socat TCP-LISTEN:5858,fork TCP:localhost:6000
サーバーは次のコマンドで実行されます (クラスター: /usr/local/n/versions/node/0.10.44/bin/node --debug=6000 /opt/play/play-server/main.js)
Intellij はセッションを接続済みとして表示するが、ブレークポイントでブレークできない