とのJavaWebセッション NCache
セッションズ 個別のユーザーのデータを保存する方法です。 Webアプリケーションをホストするサーブレットコンテナと呼ばれる、アプリケーションサーバー上で作成されたJavaセッションオブジェクトは、JavaサーブレットまたはJava Server Page(JSP)内に含まれます。 Apache Tomcat、WildFly、Web Logic & ウェブスフィア.
たとえば、Tomcat Webサーバーは、TomcatWebサーバークラスターを介したセッションレプリケーションを通じてセッション処理を提供します。 セッションレプリケーションは、データとメモリのオーバーヘッドを引き起こし、速度が低下し、パフォーマンスとスケーラビリティが不足する可能性があります。
したがって、 NCache ユーザーが負荷分散されたWebファームで問題なくアプリケーション内にJavaセッションを保存できるより良いオプションを提供します。
に関連付けられたさまざまなサーブレットコンテナ NCache
NCache 以下で説明するように、Webアプリケーションを簡単にホストできるさまざまなタイプのサーブレットコンテナを使用するオプションをユーザーに提供します。
- Apache Tomcat: これは、JavaサーブレットおよびJava Serverページのオープンソース実装であり、Javaコードを実行できる「純粋なJava」HTTPWebサーバー環境も提供します。 スティッキーセッションによるセッション処理を提供します。
- WildFly: これは、さまざまな環境でJavaアプリケーションをデプロイおよび管理するJavaで記述されたアプリケーションサーバーです。
- Webロジック: これは、Javaベースのアプリケーションをデプロイ、実行、および配布するJava Enterprise Edition(EE)準拠のアプリケーションです。
- Web Sphere: これは、Javaアプリケーションを構築および実行するための最も高度なアプリケーションサーバーです。
のJavaセッションモジュールの設定 NCache
Javaセッションを構成するには、%NC_Home%/configにある「session.xml」ファイルを変更する必要があります。 NCache フォルダ。 以下はそれを行うコードです NCache。 ライブラリの追加、フィルタの定義、サーブレットコンテナを使用したアプリケーションのデプロイの詳細については、を参照してください。 ライブラリの追加とフィルターの定義 助けて。
<?xml version="1.0" encoding="UTF-8"?>
<!--for single regional session provider-->
<servlet-session-config>
<cache id="myPartitionedCache"/>
<log log-props="log4j.properties"/>
<locking enable-session-locking="true" retries-count="2" retry-interval="500ms" lock-timeout="36000ms" empty-session-when-locked="false"/>
</servlet-session-config>
のJavaセッションモジュールの利点 NCache
NCache Javaアプリケーションがセッションを永続化するための「コード変更なし」オプションをユーザーに提供します NCache 分散キャッシング。 アプリケーションが負荷分散されたWebサーバーファームで実行されており、セッションの永続性のために信頼性が高くスケーラブルなストレージが必要な場合は、 NCache 次の利点があります。
- 最高のパフォーマンス: NCache 応答時間が最も速く、パフォーマンスが向上します。
- 高可用性: NCache 単一障害点のない強力な分散キャッシュクラスターを提供します。 高可用性 つまり、アプリケーションを停止せずにキャッシュを追加または削除できます。
- 非常に信頼性が高い: NCache ユーザーは、信頼性とパフォーマンスを損なうことなく、指定されたトポロジに従って複数のサーバー間でJavaサーブレットセッションを複製できます。 そのため、何らかの理由でキャッシュサーバーがダウンしても、ユーザーはセッションデータを失うことはありません。
- トポロジを介した優れたセッションレプリケーション: NCache 必要に応じてセッションを永続化するためのさまざまなキャッシュトポロジを提供します。 たとえば、 パーティション化された複製トポロジ 信頼性とスケーラビリティを向上させます。
- 線形スケーラビリティ: NCache、メモリ内分散 線形にスケーラブル グリッドは、高負荷を処理する機能を備えているため、セッションアプリケーションは可能な限り多くのスケーラビリティを実現できます。
JavaWebセッションでの複数のリージョンのサポート
地理的に離れて配置されている複数のWebファーム間でJavaサーブレットセッションを管理するには、 NCache 次の方法でマルチサイトセッションの永続性を提供します。
- Java WebセッションWANレプリケーション: NCache ユーザーがWANを介してすべてのJavaセッションを別のリージョン(データセンター)に複製できるようにします。 ブリッジトポロジ の特徴 NCache。 これにより、リージョンがダウンした場合でもJavaセッションが失われることはありません。
- マルチサイトJavaWebセッション: 主に高帯域幅の消費とパフォーマンスの問題の可能性があるために、ユーザーがWAN全体でセッションを複製したくない場合は、次の概念を使用することを選択できます。 マルチサイトJavaセッションのサポート、の機能 NCache。 このアプローチでは、各リージョンが個別のキャッシュを構成でき、すべてのキャッシュに独自のクライアントセット(Javaサーブレット)があります。 セッションはサイト間で複製されませんが、代わりに作成場所に保持されます。
これにより、XNUMXつ以上のアクティブな個別のリージョンを作成でき、ユーザーはほとんどのトラフィックを独自のリージョンに保持できます。 同様に、ユーザーが何らかの理由でリージョンをダウンさせても、そのリージョンは他のリージョンからアクセスできるため、問題は発生しません。
の高度な機能 NCache JavaWebセッション
のJavaWebセッション NCache JavaWebセッションによって提供されるすべての標準機能を実装します。 さらに、他の重要な状況を処理するためにいくつかの高度な機能を実装しています。
- セッションの有効期限: NCache セッションの有効期限を処理し、指定されたセッションタイムアウトの間、キャッシュからセッションを削除します。 同様に、サーブレットコンテナを介してセッションタイムアウト値を指定できます。 NCache 内部的にその間隔を使用して、キャッシュからセッションを期限切れにします。
- 複数のセッション要求とデータの整合性の処理: 並列リクエストによってセッションが変異する可能性がある状況を回避するには、 NCache XNUMXつの並列要求が同じセッションを変更できないようにロックメカニズムを提供します。 次の方法で「session.xml」ファイルで指定できます。
<servlet-session-config>
<locking enable-session-locking="true" retries-count="2" retry-interval="500ms" lock-timeout="36000ms" empty-session-when-locked="false"/>
</servlet-session-config>
- セッションデータのシリアル化の処理: JavaオブジェクトをJavaサーブレットセッションに配置し、それらをアウトプロセスで保存した後、Javaサーブレットセッション全体をシリアル化する必要があります。 NCache と呼ばれる通常のJavaシリアル化と比較してより高速なシリアル化を提供します コンパクトなシリアル化。 これにより、Javaアプリケーションの速度が大幅に向上します。
次はどうする?