マルチサイトJavaセッションのサポート
NCache は、帯域幅消費コストのために WAN 全体でセッションをレプリケートしたくない場合に、(地理的に離れた) 複数の Web ファーム間でサーブレット Java セッションを管理するために使用できるマルチサイト セッション永続性を提供します。
マルチサイト セッションの永続性を理解するには、複数のリージョンにまたがる負荷分散された Web サーバー ファームで実行される Java サーブレット アプリケーションを考慮してください。ロード バランサーは、ユーザー トラフィックに応じてクライアントを別のリージョンにリダイレクトできます。 Java セッションをキャッシュするには、セッションがリージョン間でレプリケートされるようにクラスター化されたキャッシュが必要です。 WAN 経由でセッションをレプリケーションするため、このアプローチは適切ではない可能性があります。また、キャッシュ ノードが地理的に離れているため、パフォーマンスの問題が発生する可能性があります。
NCache マルチサイト Java セッション
これらの問題を解決するには、 NCache は、マルチサイト セッションの概念を示しています。 地理的に離れた Web ファーム アプリケーションでセッションをキャッシュするには、地域ごとに個別のキャッシュを構成する必要があります。 1 つのリージョンがあり、それぞれが CR-2、CR-3、CR-4、CR-XNUMX として個別のキャッシュで構成されているとします。 各クラスター化キャッシュには、Web ファームとして独自のクライアント セット (Java サーブレット) があります。 各クライアントは、 NCache セッションサーブレットフィルター。 プライマリ キャッシュ (現在のリージョン キャッシュ) とセカンダリ キャッシュのセット (他のリージョン キャッシュのリスト) を、各キャッシュ名に対するユーザー定義のプレフィックスとともに指定する必要があります。
この設定は、 NCache セッションプロバイダーフィルター。 このようにして、各クライアントは他のリージョンのキャッシュを認識できるようになります。 によって作成されたセッション ID NCache セッション プロバイダーは、各リージョンのプライマリ キャッシュ プレフィックスに従っています。つまり、プライマリ キャッシュのプレフィックスがそのリージョンのセッション ID に追加されます。 これらのクライアントは、ほとんどの場合、独自のクラスター化されたキャッシュ、つまりプライマリ キャッシュからセッションを追加、更新、取得します。 ただし、負荷分散のためにクライアント要求が別の地理的場所の Web ファームに送信される場合があります。 今、 NCache プライマリ キャッシュ プレフィックスからリクエストを識別し、ユーザー リクエストが以前のキャッシュから同じセッションにアクセスできるようにします。
これを理解するために、CR-2 領域キャッシュの Web ファームへの要求ルートを考えてみましょう。 この状況では、 NCache CR-1 となるセッション ID プレフィックスを抽出し、独自の XNUMX 次キャッシュ リストでそのキャッシュ ID を検索します。 すべてのリージョン クライアントは、他のすべてのリージョン キャッシュのセットを二次キャッシュとして持つことになるため、 NCache CR-1 キャッシュからこのセッションを取得します。 NCache は、現在のプライマリ キャッシュ プレフィックス (CR-2) を追加し、将来のリクエストに対応するために現在のプライマリ キャッシュ (CR-2) 内でそれを更新することによって、このセッションの ID を更新します。
クライアントがロード バランサーを通過するリクエストを作成したとします。 システム負荷に基づいて、セッション要求が Web ファーム内の Web Server1 に渡されるとします。 要求が到着すると、Web Server1 プレフィックスにセッション ID が付加されたセッションが作成され、この Web ファームのプライマリ キャッシュ (この場合は Replicated Cache1) に保存されます。
ロード バランサーが同じクライアントを Web Farm2 にルーティングすると、 NCache セッションプレフィックスを分析します。このプレフィックスを使用すると、セッションが Web Farm1 に属している場合でも、レプリケート キャッシュ 1 からセッションを取得します。 これにより、XNUMX つ以上のアクティブなデータ センターを持ち、トラフィックの大部分を独自のデータ センターに保持することができますが、必要に応じて他のデータ センターにオーバーフローする場合もあります。また、ユーザーのセッションは他のデータ センターからアクセスできるようになるため、ユーザーを中断することなくデータ センターの XNUMX つを停止することもできます。または、Web ファームの XNUMX つが何らかの理由でダウンした場合、他の Web ファームがそのリージョンのキャッシュからユーザー セッションにアクセスし始め、最終的にセッションの損失を防ぐために、セッション データ全体が次のリージョンのキャッシュに移動されるとも言えます。データ。
NCache Java ベースの Web アプリケーションにセッションを保存するコード変更不要のオプションを提供します。 NCache セッション モジュール nc-sessionprovider.jar を JSP サーブレット フィルターとして実装します。 を使用するには、 NCache Java セッション モジュールを使用するには、Servlet 2.3 以降と互換性のあるコンテナ (Web サーバー) を実行する必要があります。 ユーザーは、いくつかのライブラリを参照し、フィルタを追加するだけで済みます。 web.xml すべてのリクエストがアプリケーションに届くようにするため、 NCache。 次の J2EE/Jakarta プラットフォームがサポートされています。
- 雄猫
- JBoss/ワイルドフライ
- ウェブロジック
- WebSphere
マルチサイト セッション モジュールの構成方法の詳細については、次を参照してください。 マルチサイトセッション状態プロバイダー.