7

シングルコアで正常に動作するnodejsアプリケーションを作成しました。このアプリケーションは、軽量で高速な通信にsocket.ioを使用します。

clusterここで、 nodejsのモジュールを使用してマルチコアシステムで実行できるようにすることで、アプリケーションを垂直方向にスケーリングしたいと思いました。

私のアプリケーションのすべてがRedisにデータを保存するため、いくつかの基本的なデータとセッションを処理するのに問題はありません。

ただし、クラスターを使用して複数のワーカープロセスを生成すると、各ワーカーに独自のソケット処理があるように見えます。

たとえば、「ゲスト」ルームと呼ばれるチャットルームがあるとします。

ユーザーAとユーザーBは部屋に接続し、それらは異なるワーカープロセスに配布されます。

これらは異なるプロセスにあり、これらのプロセスはソケットリスナーを共有しないため、ユーザーAとユーザーBが相互に通信する方法はありません。

この問題を解決するための良いアプローチは何ですか?socket.ioはマルチコアシステムをサポートしていますか?

socket.ioはシングルコア専用ですか?

4

1 に答える 1

3

通常どおりsocket.ioを使用できますが、バックグラウンドにredisストアがあります。また、外部ライブラリなしで、socket.io上の複数のインスタンスをサポートします。複数のインスタンスにわたる部屋もサポートします。

redisでsocket.ioを設定する方法へのリンク:socket.ioで複数のノード/プロセスを使用する

于 2012-10-06T16:31:19.173 に答える