Compartilhar via


Usando o Azure Redis como cache de sessão para WebSphere Liberty ou Open Liberty

Este artigo descreve como usar o Azure Redis como o cache de sessão HTTP para WebSphere Liberty ou Open Liberty.

Neste guia, você vai:

  • Crie uma instância do Redis Gerenciado do Azure como cache de sessão.
  • Prepare um aplicativo de exemplo que permite a persistência de sessões HTTP.
  • Execute o aplicativo de exemplo localmente.

Este artigo tem o objetivo de ajudá-lo a iniciar rapidamente a implementação. Antes de ir para a produção, você deve explorar Tuning Liberty.

Se você tiver interesse em fornecer feedback ou trabalhar em seus cenários de migração em estreita colaboração com a equipe de engenharia que desenvolve o WebSphere para as soluções do Azure, responda a essa breve pesquisa sobre migração para o WebSphere e inclua seus dados de contato. A equipe de gerentes de programas, arquitetos e engenheiros entrará em contato prontamente com você para dar início a uma estreita colaboração.

Pré-requisitos

  • Uma assinatura do Azure. Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
  • Prepare um computador local com sistema operacional semelhante ao Unix instalado - por exemplo, Ubuntu, macOS ou o Subsistema do Windows para Linux.
  • Instale uma implementação Java Standard Edition (SE) versão 17 ou posterior – por exemplo, o build da Microsoft do OpenJDK.
  • Instale o Maven 3.9.8 ou posterior.
  • Verifique se o Git está instalado.

Criar uma Instância Gerenciada do Redis do Azure

O Redis Gerenciado do Azure fornece um armazenamento de dados em memória baseado no software Redis Enterprise. Use as etapas a seguir para criar uma instância do Redis Gerenciado do Azure e anote suas informações de conexão. Você usará essas informações mais tarde para configurar o aplicativo de exemplo.

  1. Crie uma instância do Redis Gerenciado do Azure seguindo as etapas em Início Rápido: criar uma instância do Redis Gerenciado do Azure. Observe cuidadosamente as seguintes diferenças:

    1. Na etapa 3 da seção Criar uma instância do Redis, na guia Básico, selecione um SKU do Cache que dê suporte ao Redis Gerenciado do Azure. Para este guia, selecione Balanceado (para cargas de trabalho de uso geral com requisitos de desempenho típicos). Para obter mais informações, consulte Escolhendo o nível certo.

    2. Na etapa 4 da seção Criar uma instância do Redis, na guia Rede, para a opção Conectividade, selecione Ponto de Extremidade Público. Essa opção é a melhor opção para simplificar ao usar este guia. Para produção, você deve considerar o uso do Ponto de Extremidade Privado para melhor segurança.

    3. Na etapa 5 da seção Criar uma instância do Redis, na qual você está na guia Avançado, defina as seguintes configurações:

      • Para Autenticação, habilite Autenticação de Chaves de Acesso. Essa opção é a melhor opção para simplificar ao usar este guia. Para uma segurança ideal, recomendamos usar o Microsoft Entra ID com identidades gerenciadas para autorizar solicitações em seu cache, se possível. A autorização usando a ID do Microsoft Entra e identidades gerenciadas fornece segurança superior e facilidade de uso sobre a autorização de chave de acesso compartilhado. Para obter mais informações sobre como usar identidades gerenciadas com seu cache, consulte Usar a ID do Microsoft Entra para autenticação de cache.

      • Defina Política de clustering como Empresa para um cache não clusterizado, o que é adequado para este guia usando uma configuração de nó único. Para obter mais informações, confira o Clustering no Enterprise.

  2. Após a conclusão da implantação, selecione Ir para o recurso se você estiver na página Implantação. Caso contrário, navegue até o portal do Azure, localize e selecione sua instância do Redis Gerenciado do Azure.

  3. Na página Visão geral, anote o valor de Ponto de Extremidade. Você usará esse valor na variável de ambiente REDIS_CACHE_ADDRESS posteriormente.

  4. Selecione Configurações>Autenticação. Selecione Chaves de acesso e anote o valor de Primária. Você usará esse valor como a variável de ambiente REDIS_CACHE_KEY posteriormente.

  5. Use o seguinte comando para exportar as variáveis de ambiente REDIS_CACHE_ADDRESS e REDIS_CACHE_KEY:

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

Preparar o aplicativo de exemplo

O WebSphere Liberty e o Open Liberty fornecem um recurso de cache de sessão que permite armazenar dados de sessão HTTP em um cache externo. Neste guia, você usará o recurso Persistência de Sessão do JCache para armazenar os dados da sessão na instância do Redis Gerenciado do Azure.

Use os comandos a seguir para clonar o código de exemplo para este guia. O exemplo está no repositório open-liberty-on-aks no GitHub. Há alguns exemplos no repositório. Este artigo 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

Se você vir uma mensagem sobre estar no estado detached HEAD, essa mensagem pode ser ignorada. Isso só quer dizer que você verificou uma etiqueta.

O aplicativo tem a seguinte estrutura de arquivos:

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

O arquivo pom.xml é o arquivo de projeto do Maven que contém as dependências e plug-ins do aplicativo de exemplo.

O arquivo pom-redisson.xml é usado para copiar dependências da biblioteca de clientes Redisson para o diretório de recursos compartilhados do servidor Liberty posteriormente.

Os diretórios java, resources e webapp contêm o código-fonte do aplicativo de exemplo.

No diretório liberty/config, o arquivo server.xml é usado para configurar o cache de sessão HTTP para Open Liberty e WebSphere Liberty.

No diretório redisson, o arquivo redisson-config.yaml é usado para configurar a conexão com a instância do Redis Gerenciado do Azure.

O diretório docker contém dois Dockerfiles. dockerfile é usado para criar uma imagem com o Open Liberty e dockerfile-wlp é usado para criar uma imagem com o WebSphere Liberty.

Executar o aplicativo de exemplo localmente

Use as etapas a seguir para criar e executar seu aplicativo de exemplo localmente. Essas etapas usam o Maven e o liberty-maven-plugin. Para obter mais informações sobre o liberty-maven-plugin, consulte Criando um aplicativo Web com o Maven.

  1. Verifique se o diretório de trabalho atual é java-app-jcache em seu clone local.

  2. Execute o comando Maven mvn clean package e empacote o aplicativo.

  3. Execute mvn -Predisson validate para copiar o arquivo de configuração Redisson para o local de destino correto. Essa etapa também insere os valores das variáveis de ambiente REDIS_CACHE_ADDRESS e REDIS_CACHE_KEY no arquivo redisson-config.yaml, que é referenciado pelo arquivo server.xml.

  4. Execute mvn dependency:copy-dependencies -f pom-redisson.xml -DoutputDirectory=target/liberty/wlp/usr/shared/resources para copiar a biblioteca de clientes Redisson e suas dependências para o diretório de recursos compartilhados do servidor Liberty.

  5. Execute o comando Maven mvn liberty:dev e inicie o aplicativo. Se o aplicativo for iniciado com êxito, você deverá ver The defaultServer server is ready to run a smarter planet. na saída do comando.

    Você deverá ver um resultado semelhante ao exemplo a seguir, se a conexão com o Redis for bem-sucedida.

    [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
    

Testar o aplicativo

Abra um navegador da Web para http://localhost:9080 e você deverá ver a home page do aplicativo.

Captura de tela do aplicativo Java Liberty em execução com êxito.

No formulário Novo café, defina os valores para os campos Nome e Preço e então selecione Enviar. O aplicativo cria um café, o mantém e também armazena a sessão HTTP na instância do Redis Gerenciado do Azure.

Depois de alguns segundos, você vê o novo café apresentado na tabela Nossos cafés.

Captura de tela do aplicativo de exemplo mostrando o novo café criado e persistido na sessão do aplicativo.

Para demonstrar que os dados da sessão podem ser recuperados do Redis, use Ctrl+C para interromper o aplicativo e reiniciá-lo com o comando mvn liberty:dev.

Em seguida, atualize a página inicial do aplicativo. Você deverá ver os mesmos dados de sessão exibidos na seção Novo café. Interrompa o aplicativo quando terminar de testar.

Colocar o aplicativo em um contêiner

Opcionalmente, você pode empacotar e executar o aplicativo em um contêiner usando as etapas a seguir. O aplicativo de exemplo fornece dois Dockerfiles para Open Liberty e WebSphere Liberty. Este guia usa o Dockerfile para Open Liberty, mas você pode usar o Dockerfile para WebSphere Liberty seguindo etapas semelhantes.

  1. Instale o Docker para o sistema operacional. Para obter mais informações, confira Obter o Docker.

  2. Use o seguinte comando para criar a imagem do Docker:

    docker build -t javaee-cafe-jcache:v1 -f src/main/docker/Dockerfile .
    
  3. Use o seguinte comando para iniciar o contêiner do 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
    

    Depois que o contêiner for iniciado, você poderá testá-lo usando etapas semelhantes às que você usa para executar o aplicativo localmente sem o Docker.

Limpar os recursos

Para evitar cobranças do Azure, limpe recursos desnecessários. Quando a instância do Redis Gerenciado do Azure não for mais necessária, localize o nome do grupo de recursos e exclua-o do portal do Azure.

Para obter mais informações, consulte Excluir grupos de recursos.

Próximas etapas

Você pode saber mais sobre as referências usadas neste guia:

Se você quiser implantar o aplicativo de exemplo no Azure, faça referência aos seguintes artigos:

Para explorar as opções para executar produtos WebSphere no Azure, consulte Quais são as soluções para executar a família de produtos WebSphere no Azure?