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