0

Octopus lb によってバランスがとられた 6 つの Apache Web サーバーをフロントエンドとして持つ 6 つのノードで構成される Glassfish3 クラスターを構築しようとしています。ロード バランサーを使用すると、すべてのノードに登録されている負荷に応じてリクエストを送信できます。私の設定は次のとおりです:
クライアント -> octopus ロード バランサー -> Apache Web サーバー -> Glassfish サーバー。Glassfish は ajp 経由で Apache と通信します。
私が抱えている問題は、セッションがクラスター全体で必要に応じて複製されていないように見えることです。
Glassfish v2 を使用したクラスタリングに関するドキュメントをいくつか見つけました。3 つのノードを持つクラスターがある場合、ノード 1 はセッションを n2 に、n2 を n3 に、n3 を n1 にレプリケートするため、1 つまたは 2 つが失敗する可能性がありますが、セッションはまだそこにあります。
gf3も同じですか?このクラスターの構築を開始したときに私が考えたのは、各ノードが自分のセッションをクラスターから他のすべてのノードに複製するという事実でした。
セッション レプリケーションがバージョン 2 のように機能する場合、私のセットアップは機能しないと思います。なぜなら、リクエストは n1 からのサーバーであり、n5 からの 2 番目のサーバーである可能性があるためです (n1 はセッションを n5 に直接レプリケートしません)。セッションデータ。
アドバイスはありますか??

4

1 に答える 1

0

さて、まだ誰も私の質問に答えていないので、私は私の質問に関していくつかの結論を返しました。
したがって、セッションは私が読んだときに複製されます。つまり、すべてのノードがセッションを別のノードにバックアップします。このレプリケーションがバージョン3のリングnode1->node2->node3-> node1で実行されたglassfishv2とは異なり、すべてのノードはハッシュアルゴリズムに基づいてセッションを他のノードにレプリケートします。

また、スティッキーセッションロードバランサーが必要です。ノード1からセッションを取得し、ノード1がノード3でそのセッションを複製し、2番目のリクエストがノード2に転送される場合、問題が発生するためです。スティッキーセッションはそれを修正します。

現在実装されているセットアップは次のようになります:octopus lb(スティッキーセッションでは機能しません)-> apache http(スティッキーセッションのmod_jkロードバランサー)->glassfishノード。したがって、タコが私を間違ったノードに送信した場合でも、セッションCookieに基づいてApacheロードバランサーは私を正しいGlassfishノードに送信します。
なぜ私がタコlbasaを拳バランサーsiとして使用するのか不思議に思うなら、それは私が他のサービスとphpアプリケーションのバランスを取っているからです。
これが誰かを助けることを願っています...

于 2013-02-26T14:54:40.570 に答える