0

分散型で簡単に拡張可能な Java サーバーをどのように作成しますか。UDP 経由でオーディオ パケットを受信および再送信するオーディオ リピーターを作成しましたが、複数のサーバーでユーザーのバランスを取りたいと考えています。何を提案しますか?サーバーは次の基本的な方法で動作します。ユーザーがルームに登録すると、サーバーからのメッセージのリッスンが開始されるか、オーディオ パケットがルームに送信されます。サーバーがパケットを受信すると、ルームにいるユーザーの IP アドレスを探し、オーディオ パケットを再送信します。

4

1 に答える 1

1

新しいルームが比較的まれにしか作成されないと仮定すると、多くのルーム、多数のサーバー、およびルームを探している多数のクライアントが存在する場合でも、ZooKeeperをお勧めします。次のようにします。

  • サーバーは、サーバー アドレスを含むルーム名を使用して、各ルームのノードを作成します。各部屋に最大 1 つのサーバーが要求することを保証することもできます (ドキュメントのロック レシピを参照してください)。
  • クライアントは目的の名前のノードを読み取り、対応するサーバーのアドレスを取得します。このような読み取り操作は、サーバー間で負荷分散され、スケーリングされます。

2 番目のステップとして、他の (スタンバイ?) サーバーによって監視されるエフェメラル ノードを使用して、元のサーバーに障害が発生した場合にルームを要求することで、サーバーをフォールト トレラントにすることもできます。

于 2013-03-30T17:04:32.200 に答える