1

取り組むべきプロジェクトがあり、メッセージなどを送信できるクライアント サーバー アプリケーションを Java で構築する必要があります。プロジェクトの 1 つの目標は、フェイルオーバーに対処することです。クライアントがサーバーに接続しているときにサーバーが停止すると、自動的にバックアップ サーバーに接続します。私がやりたいことは必須ではありませんが、ロードバランサーを実装して、複数のクライアントが優先サーバーに接続できるようにしたいと考えています。

クライアントとサーバー間の接続は、TCP ソケットを使用する必要があります。

これは、ネットワーク アーキテクチャの概略図です。 ここに画像の説明を入力

  1. クライアントはロードバランサーに接続します (udp または tcp、この状況に最適なものはわかりません)。

  2. ロードバランサーは、そのクライアントが接続するサーバー (最も空のサーバー) を決定します

  3. クライアントは、指定されたサーバーとの TCP 接続を作成します

私の質問は:

クライアントを特定のサーバーに接続するには、ロード バランサーはどのように機能する必要がありますか? サーバーの情報 (IP、ポート) をクライアントに送信すると、クライアントは新しい IP で別のソケットを作成しますか? (青線)。

または、クライアントに情報を送信することなく、ロード バランサーがこれら 2 つのエンド ポイント (サーバー #1 <-> クライアント #1) を接続する方法はありますか?

PS: 各クライアントがサーバーに接続するために 2 つのソケットを作成する必要がないように思われるため、お尋ねします (最初のソケットの黒い線、2 つ目のソケットの青い線)。

4

1 に答える 1