ユーザーがログインし、ルームに参加し、WebSocket を使用してこのルーム内の他のユーザーとデータを交換できるようにする Node.JS サーバーを設計しました。ただし、このセットアップをスケーラブルにする方法を探しています。
nginx や haproxy などのさまざまなロードバランサーの調査に午後中を費やしていますが、セットアップを整理する方法がまだわかりません。
最初に、ユーザーはログインしてアクティブなルームを表示できます。この部分をスケーラブルにするのは大したことではありません。ただし、特定のルームに参加することができ、その時点でルーム内の他のユーザーと同じ node.js インスタンスに接続する必要があります。分かりにくいのはこの部分です。
今のところ、私の解決策は、2 つの異なるタイプの node.js インスタンスを作成することです。ログインおよびルーム概要リクエスト メソッドを処理する 1 つのジェネリック タイプと、多数のルームを処理する 1 つのルームタイプ。次に、ジェネリック型は、どの特定のインスタンスがどの部屋を担当しているかを追跡し、正しいアドレスをユーザーのアプリケーションに配信できます。
しかし、私はこの解決策に満足していないので、提案をお待ちしています。これがかなり漠然とした質問であることは理解していますが、正確な解決策を探しているわけではなく、すべてを整理する方法についてのヒントを探しています.