ゲートウェイ(サーバーA)とフォロワー(サーバーB)で構成されるシステムを構築しています。クライアントがサーバーAにリクエストを送信すると、サーバーAはリクエストをサーバーBに転送します。サーバーBがサーバーAに迷惑をかけずに、クライアントに直接応答を送信するようにします。基本的にサーバーAをゲートウェイとして使用します。
これは良いプログラミング手法だと思いますか?
ゲートウェイ(サーバーA)とフォロワー(サーバーB)で構成されるシステムを構築しています。クライアントがサーバーAにリクエストを送信すると、サーバーAはリクエストをサーバーBに転送します。サーバーBがサーバーAに迷惑をかけずに、クライアントに直接応答を送信するようにします。基本的にサーバーAをゲートウェイとして使用します。
これは良いプログラミング手法だと思いますか?
通信プロトコルに関する質問は別として、基本的な問題があります。サーバーBはクライアントについてどのように認識しますか。サーバーAは、サーバーAから連絡を受けたため、そのことを知っています。クエリ応答アプローチでは、クライアントはサーバーAが応答するのを待ちます。サーバーAは、クライアントから要求を受信したため、クライアントについて認識しています。クライアントは、最初にAに接続したため、Aからの応答を待つことを知っています。Bはクライアントについて何も知らず、サーバーAについてのみ知っています。サーバーAは理論的にはクライアントに関する情報をBに送信できますが、Bは情報を送り返すためにクライアントに接続できる必要があります。
より良い設計は、サーバーAに双方向の通信を処理させ、サーバーBおよびその他のサーバーを使用して作業を処理することです。システムが1台のサーバーAで処理するには大きすぎる場合は、ロードバランサーを導入してトラフィックを複数のサーバーAに転送できます。