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 を使用し、次のメイン タスクを実行します。
- Spring Session Data Redis ライブラリをアプリケーションに追加する。
- Azure Cache for Redis インスタンスに接続するように application.yml ファイルを構成する。
- Java の HTTP セッション メカニズムを使用して、データを格納および取得する。
次のユニットに進み、この構成を実装します。