興味深い質問です!テクノロジーに依存する可能性があることを恐れています。HTTP ドメインにいる限り、何らかの方法でロードバランサーを構成できる可能性があります。
私は Java 派なので、Java では EJB と言うことができます。これらは、サーバーにインストールされ、リモートで実行できる分散コンポーネントです。彼らの通信プロトコルはバイナリであり、ロードバランサーがそれを読み取れるとは思えません。
したがって、JBoss では、たとえば、サーバーのクラスターを作成し、異なるサーバーに異なる EJB をデプロイできます。たとえば、システムに 2 つの EJB があるとします。1 つは牛乳を購入でき、もう 1 つはピザを購入できます。
したがって、milk ejb をサーバー 1 にデプロイし、pizza ejb をサーバー 2 にデプロイします。
これで名前解決サービスができました (Java/jboss では HA-JNDI と呼ばれます)。基本的な考え方は、名前に基づいてリモート スタブを提供することです。
PizzaEJB pizzaEjb = NamingService.getMyStub(PizzaEJB.class);
もちろん、実際に動作するコードではありませんが、アイデアを示しています。
トリックは、このネーミング サーバーが各 EJB がデプロイされている場所を認識しているため、サーバー 2 にのみピザ ejb がある場合、サーバー 2 に移動してピザを購入するスタブを常に返すことです :)
Java プログラマーは、内部でどのように実装されているかはあまり気にしません。アイデアを与えるために-ネーミングサービスには、各サーバーに展開された何らかの形式のエージェントがあり、それらは互いに通信します...
これは、ここでJavaがどのように機能するかです。
私が思うに、Restful Web サービスに基づいて API を作成できるかもしれません。この場合、簡単に解析できる http リクエストなので、実装は比較的簡単です (ロード バランサーがこの種の処理をサポートしている場合)。
これが何らかの形で役立つことを願っています