0

同じコンテンツに対するすべてのリクエストを同じバックエンド サーバーに送信したいと考えていました。どうすればこれができますか。これを実行できる HaProxy のようなオープン ソース バージョンはありますか。

例えば。クライアント 1 がコンテンツ A を要求し、私のロード バランサーはその要求をバックエンド サーバーの 1 つ (X など) にラウンド ロビン ベースで転送します。同じコンテンツ A に対して別のクライアント 2 からリクエストを受信した場合、このリクエストは同じバックエンド サーバー X に送信する必要があります。これを実行できるオープン ソース ソリューションはありますか。

ヘルプ/ポインタをいただければ幸いです。

ありがとう、ニキル

4

2 に答える 2

2

Ha proxyあなたが望むことをすることができます。acl optionsほとんどの要件に適合するように、多くの製品が用意されています。Varnish堅牢な ACL 言語を持つ別のオプションです。

于 2012-11-15T04:35:10.573 に答える
0

興味深い質問です!テクノロジーに依存する可能性があることを恐れています。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 リクエストなので、実装は比較的簡単です (ロード バランサーがこの種の処理をサポートしている場合)。

これが何らかの形で役立つことを願っています

于 2012-10-26T06:10:32.767 に答える