Compartir a través de


Uso de Azure Redis como caché de sesión para WebSphere Liberty o Open Liberty

En este artículo se describe cómo usar Azure Redis como caché de sesión HTTP para WebSphere Liberty o Open Liberty.

En esta guía, hará lo siguiente:

  • Cree una instancia de Azure Managed Redis como caché de sesión.
  • Prepare una aplicación de ejemplo que permita la persistencia de sesiones HTTP.
  • Ejecute la aplicación de ejemplo localmente.

Este artículo está diseñado para ayudarle a llegar rápidamente a la implementación. Antes de ir a producción, debe explorar Tuning Liberty.

Si está interesado en proporcionar comentarios o trabajar estrechamente en sus escenarios de migración con el equipo de ingeniería que desarrolla WebSphere en soluciones de Azure, rellene esta breve encuesta sobre la migración de WebSphere e incluya la información de contacto. El equipo de administradores de programas, arquitectos e ingenieros se pondrá en contacto rápidamente con usted para iniciar una estrecha colaboración.

Requisitos previos

  • Suscripción a Azure. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
  • Prepara una máquina local con un sistema operativo similar a Unix instalado (por ejemplo, Ubuntu, macOS o Subsistema de Windows para Linux).
  • Instale una implementación de Java Standard Edition (SE) versión 17 o posterior; por ejemplo, microsoft build of OpenJDK (Compilación de OpenJDK).
  • Instale Maven 3.9.8 o una versión superior.
  • Asegúrese de que Git está instalado.

Creación de una instancia de Azure Managed Redis

Azure Managed Redis proporciona un almacén de datos en memoria basado en el software de Redis Enterprise . Siga estos pasos para crear una instancia de Azure Managed Redis y, a continuación, anote su información de conexión. Esta información se usa más adelante para configurar la aplicación de ejemplo.

  1. Cree una instancia de Azure Managed Redis siguiendo los pasos descritos en Inicio rápido: Creación de una instancia de Azure Managed Redis. Tenga en cuenta las siguientes diferencias:

    1. En el paso 3 de la sección Creación de una instancia de Redis, donde se encuentra en la pestaña Aspectos básicos , seleccione una SKU de caché que admita Azure Managed Redis. En esta guía, seleccione Equilibrado (para cargas de trabajo de uso general con requisitos de rendimiento típicos). Para obtener más información, consulte Elección del nivel correcto.

    2. En el paso 4 de la sección Crear una instancia de Redis, donde se encuentra en la pestaña Redes , en la opción Conectividad , seleccione Punto de conexión público. Esta opción es la mejor opción para simplificar al usar esta guía. Para producción, debe considerar el uso del punto de conexión privado para mejorar la seguridad.

    3. En el paso 5 de la sección Creación de una instancia de Redis, donde se encuentra en la pestaña Opciones avanzadas , configure los valores siguientes:

      • En Autenticación, habilite la autenticación de claves de acceso. Esta opción es la mejor opción para simplificar al usar esta guía. Para obtener una seguridad óptima, se recomienda usar el identificador de Entra de Microsoft con identidades administradas para autorizar solicitudes en la memoria caché, si es posible. La autorización mediante Microsoft Entra ID y las identidades administradas proporciona mayor seguridad y facilidad de uso a través de la autorización de claves de acceso compartido. Para obtener más información sobre el uso de identidades administradas con la memoria caché, consulte Uso de Microsoft Entra ID para la autenticación de caché.

      • Establezca la directiva de agrupación en clústeres en Enterprise para una caché no agrupada, que funciona para esta guía en la que se usa la configuración de un solo nodo. Para obtener más información, consulte Agrupación en la empresa.

  2. Una vez completada la implementación, seleccione Ir al recurso si está en la página Implementación . De lo contrario, vaya a Azure Portal, busque y seleccione la instancia de Azure Managed Redis.

  3. En la página Información general , anote el valor punto de conexión . Este valor se usa en la REDIS_CACHE_ADDRESS variable de entorno más adelante.

  4. Seleccione Configuración>Autenticación. Seleccione Claves de acceso y anote el valor principal . Este valor se usa como variable REDIS_CACHE_KEY de entorno más adelante.

  5. Use el siguiente comando para exportar las variables REDIS_CACHE_ADDRESS de entorno y REDIS_CACHE_KEY:

    export REDIS_CACHE_ADDRESS=rediss://<your-redis-cache-endpoint>
    export REDIS_CACHE_KEY=<your-primary-access-key>
    

Preparación de la aplicación de ejemplo

WebSphere Liberty y Open Liberty proporcionan una característica de caché de sesión que permite almacenar datos de sesión HTTP en una memoria caché externa. En esta guía, usará la característica Persistencia de sesión de JCache para almacenar los datos de sesión en la instancia de Azure Managed Redis.

Use los siguientes comandos para clonar el código de ejemplo de esta guía. El ejemplo se encuentra en el repositorio open-liberty-on-aks en GitHub. Hay algunos ejemplos en el repositorio. En este artículo se usa java-app-jcache.

git clone https://github.com/Azure-Samples/open-liberty-on-aks.git
cd open-liberty-on-aks
git checkout 20250228
cd java-app-jcache

Si ve un mensaje sobre estar en el estado detached HEAD, puede ignorarlo con seguridad. Solo significa que ha extraído una etiqueta del repositorio.

La aplicación tiene la siguiente estructura de archivos:

java-app-jcache/
├── pom.xml
├── pom-redisson.xml
└── src
    └── main
        ├── docker
        │   ├── Dockerfile
        │   └── Dockerfile-wlp
        ├── java
        ├── liberty
        │   └── config
        │       └── server.xml
        ├── redisson
        │   └── redisson-config.yaml
        ├── resources
        └── webapp

El archivo pom.xml es el archivo de proyecto de Maven que contiene las dependencias y complementos de la aplicación de ejemplo.

El archivo pom-redisson.xml se usa para copiar las dependencias de la biblioteca cliente de Redisson en el directorio de recursos compartidos del servidor Liberty más adelante.

Los directorios java, resources y webapp contienen el código fuente de la aplicación de ejemplo.

En el directorio liberty/config , el archivo server.xml se usa para configurar la caché de sesión HTTP para Open Liberty y WebSphere Liberty.

En el directorio redisson , el archivo redisson-config.yaml se usa para configurar la conexión a la instancia de Azure Managed Redis.

El directorio docker contiene dos Dockerfiles. Dockerfile se usa para compilar una imagen con Open Liberty y Dockerfile-wlp para compilar una imagen con WebSphere Liberty.

Ejecución local de la aplicación de ejemplo

Siga estos pasos para compilar y ejecutar la aplicación de ejemplo localmente. En estos pasos se usa Maven y liberty-maven-plugin. Para obtener más información sobre liberty-maven-plugin, vea Building a web application with Maven (Creación de una aplicación web con Maven).

  1. Compruebe que el directorio de trabajo actual es java-app-jcache en el clon local.

  2. Ejecute el comando mvn clean package Maven y empaquete la aplicación.

  3. Ejecute mvn -Predisson validate para copiar el archivo de configuración de Redisson en la ubicación de destino correcta. Este paso también inserta los valores de las variables REDIS_CACHE_ADDRESS de entorno y REDIS_CACHE_KEY en el archivo redisson-config.yaml , al que hace referencia el archivo server.xml .

  4. Ejecute mvn dependency:copy-dependencies -f pom-redisson.xml -DoutputDirectory=target/liberty/wlp/usr/shared/resources para copiar la biblioteca cliente de Redisson y sus dependencias en el directorio de recursos compartidos del servidor Liberty.

  5. Ejecute el comando mvn liberty:dev Maven e inicie la aplicación. Si la aplicación se ha iniciado correctamente, debería ver The defaultServer server is ready to run a smarter planet. en la salida del comando.

    Debería ver una salida similar al ejemplo siguiente, si la conexión de Redis se realiza correctamente.

    [INFO] [err] [Default Executor-thread-3] INFO org.redisson.Version - Redisson 3.23.4
    [INFO] [err] [redisson-netty-2-7] INFO org.redisson.connection.pool.MasterPubSubConnectionPool - 1 connections initialized for redacted.<region>.redis.azure.net/<ip_address>:10000
    [INFO] [err] [redisson-netty-2-20] INFO org.redisson.connection.pool.MasterConnectionPool - 24 connections initialized for redacted.<region>.redis.azure.net/<ip_address>:10000
    

Prueba de la aplicación

Abra un explorador web en http://localhost:9080 y debería ver la página principal de la aplicación.

Captura de pantalla de la aplicación Java Liberty funcionando correctamente.

En el formulario Nuevo café , establezca valores para los campos Nombre y Precio y, a continuación, seleccione Enviar. La aplicación crea un café nuevo, lo conserva y también almacena la sesión HTTP en la instancia de Azure Managed Redis.

Después de unos segundos, verá el nuevo café mostrado en la mesa Nuestros cafés.

Captura de pantalla de la aplicación de ejemplo que muestra el nuevo café creado y conservado en la sesión de la aplicación.

Para demostrar que los datos de sesión se pueden recuperar de Redis, use Ctrl+C para detener la aplicación y reiniciarlos con el mvn liberty:dev comando .

A continuación, actualice la página principal de la aplicación. Debería ver los mismos datos de sesión que se muestran en la sección Nuevo café. Detenga la aplicación cuando haya terminado de probar.

Incluir la aplicación en contenedores

Opcionalmente, puede empaquetar y ejecutar la aplicación en un contenedor mediante los pasos siguientes. La aplicación de ejemplo proporciona dos Dockerfiles para Open Liberty y WebSphere Liberty. En esta guía se usa dockerfile para Open Liberty, pero puede usar dockerfile para WebSphere Liberty siguiendo pasos similares.

  1. Instale Docker para el sistema operativo. Para más información, consulte Obtención de Docker.

  2. Use el siguiente comando para compilar la imagen de Docker:

    docker build -t javaee-cafe-jcache:v1 -f src/main/docker/Dockerfile .
    
  3. Use el comando siguiente para iniciar el contenedor de Docker:

    docker run -it --rm \
       -p 9080:9080 \
       -e REDIS_CACHE_ADDRESS=${REDIS_CACHE_ADDRESS} \
       -e REDIS_CACHE_KEY=${REDIS_CACHE_KEY} \
       --mount type=bind,source=$(pwd)/target/liberty/wlp/usr/servers/defaultServer/redisson-config.yaml,target=/config/redisson-config.yaml \
       javaee-cafe-jcache:v1
    

    Una vez iniciado el contenedor, puede probarlo mediante pasos similares a los que se usan para ejecutar la aplicación localmente sin Docker.

Limpieza de recursos

Para evitar los cargos de Azure, se recomienda limpiar los recursos que no sean necesarios. Cuando ya no se necesite la instancia de Azure Managed Redis, busque su nombre de grupo de recursos y elimínelo de Azure Portal.

Para más información, consulte Eliminación de grupos de recursos.

Pasos siguientes

Puede obtener más información en las referencias que se usan en esta guía:

Si desea implementar la aplicación de ejemplo en Azure, consulte los artículos siguientes:

Si desea explorar las opciones para ejecutar los productos WebSphere en Azure, consulte ¿Cuáles son las soluciones para ejecutar la familia de productos WebSphere en Azure?