Spring Session を使用して HTTP セッション データを格納する

完了

このユニットでは、Azure Cache for Redis を使用して Spring Session を介して HTTP セッション データを格納する方法を学習します。

HTTP セッション

HTTP セッションでは、要求間でユーザー データ (通常はセキュリティ情報) を格納します。 HTTP セッションでは、アプリケーションの状態を格納したり、頻繁にアクセスされるユーザー データをキャッシュしたりすることもできます。 HTTP セッションはサーバー上に格納されるため、スケーラビリティの問題が発生する可能性があります。 アプリケーションがより多くのノードにスケールアウトされるときに、セッションをレプリケートする必要があります。

HTTP セッションはサーブレットの初期から Java で使用でき、JavaServer Faces (JSF) などのテクノロジではそれらが頻繁に使用されています。 HTTP セッションのスケーリングは常に問題であり、すべての主要な Java アプリケーション サーバーにセッション レプリケーション メカニズムが存在します。

1 つの問題は、HTTP セッション レプリケーション メカニズムは標準化されていないものの、各アプリケーション サーバーに固有の API に依存することです。 このセットアップにより、移植性の問題が発生する可能性があります。

Spring Session

Spring Session は、HTTP セッション レプリケーションを構成するための汎用ソリューションを提供する Spring サブプロジェクトです。 Spring Session では、いくつかのバックエンド オプションの 1 つとして Redis がサポートされています。 Spring Session により、Redis 内のすべてのセッション データがレプリケートされるため、アプリケーションがスケールアウトされるときに、各ノードでユーザー セッションにアクセスできます。

Spring Session の構成は、前の Spring Data 構成と似ており、別の推奨される Redis の使用シナリオが示されています。

Redis で Spring Session を使用する

一部の構成は Spring Data Redis の場合と同じであり、両方のソリューションに対して 1 回だけ実行する必要があります。 Spring Data 構成と同様に、通常は Spring Initializr を使用し、次のメイン タスクを実行します。

  1. Spring Session Data Redis ライブラリをアプリケーションに追加する。
  2. Azure Cache for Redis インスタンスに接続するように application.yml ファイルを構成する。
  3. Java の HTTP セッション メカニズムを使用して、データを格納および取得する。

次のユニットに進み、この構成を実装します。