Almacenamiento de datos de sesión HTTP con Spring Session

Completado

En esta unidad, aprenderá a usar Azure Cache for Redis para almacenar datos de sesión HTTP con Spring Session.

Sesiones HTTP

Las sesiones HTTP almacenan datos del usuario, normalmente información de seguridad, entre solicitudes. Las sesiones HTTP también pueden almacenar el estado de la aplicación o almacenar en caché los datos de usuario a los que se accede con frecuencia. Dado que las sesiones HTTP se almacenan en el servidor, pueden presentar un problema de escalabilidad. Debe replicar las sesiones cuando la aplicación se escale horizontalmente a más nodos.

Las sesiones HTTP están disponibles en Java desde los comienzos de los servlets, y tecnologías como JavaServer Faces (JSF) las usan en gran medida. El escalado de las sesiones HTTP ha sido siempre un problema y existen mecanismos de replicación de sesiones en los principales servidores de aplicaciones de Java.

Un problema es que los mecanismos de replicación de sesiones HTTP no están normalizados, pero se basan en API específicas para cada servidor de aplicaciones. Esta configuración puede causar problemas de portabilidad.

Spring Session

Spring Session es un subproyecto de Spring que proporciona una solución genérica para configurar la replicación de sesiones HTTP. Spring Session admite Redis como una de varias opciones de back-end. Spring Session replica todos los datos de sesiones en Redis, de modo que, cuando la aplicación se escala horizontalmente, cada nodo accede a las sesiones de usuario.

La configuración de Spring Session es similar a la configuración de Spring Data anterior y muestra otro escenario de uso recomendado de Redis.

Uso de Spring Session con Redis

Parte de la configuración es la misma que para Spring Data Redis y solo tiene que definirla una vez para ambas soluciones. Al igual que con la configuración de Spring Data, se suele utilizar Spring Initializr y se realizan las siguientes tareas principales:

  1. Agregar la biblioteca de Redis para Spring Session a la aplicación.
  2. Configurar el archivo application.yml para conectarse a la instancia de Azure Cache for Redis.
  3. Usar el mecanismo de sesiones HTTP de Java para almacenar o recuperar datos.

Continúe con la siguiente unidad para implementar esta configuración.