Partilhar 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ê:

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

Este artigo destina-se a ajudá-lo a chegar rapidamente à implementação. Antes de passar para a fase de produção, deve-se explorar Tuning Liberty.

Se estiver interessado em fornecer feedback ou trabalhar estreitamente nos seus cenários de migração com a equipa de engenharia que desenvolve soluções WebSphere on Azure, preencha este curto questionário sobre migração do WebSphere e inclua os seus dados de contacto. A equipe de gerentes de programa, arquitetos e engenheiros entrará prontamente em contato com você para iniciar uma estreita colaboração.

Pré-requisitos

  • Uma subscrição do Azure. Se não tiver uma subscrição Azure, crie uma conta gratuita antes de começar.
  • Prepare uma máquina local com um sistema operativo do tipo Unix instalado - por exemplo, Ubuntu, macOS, ou Windows Subsystem for Linux.
  • Instale uma implementação Java Standard Edition (SE) versão 17 ou posterior - por exemplo, compilação Microsoft do OpenJDK.
  • Instale o Maven 3.9.8 ou superior.
  • Certifique-se de que o Git está instalado.

Criar uma instância do Azure Managed Redis

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

  1. Crie uma instância do Azure Managed Redis seguindo as etapas em Guia de início rápido: criar uma instância Redis gerenciada do Azure. Observe cuidadosamente as seguintes diferenças:

    1. Na etapa 3 da seção Criar uma instância de Redis, onde você está na guia Noções básicas, selecione um SKU de Cache que ofereça suporte a Azure Redis Gerido. Para este guia, selecione Balanceado (Para cargas de trabalho de uso geral com requisitos de desempenho típicos). Para obter mais informações, consulte Escolher o nível adequado.

    2. Na etapa 4 da seção Criar uma instância do Redis, onde se encontra no separador Rede, para a opção Conectividade, selecione Ponto de Extremidade Público. Esta opção é a melhor escolha para simplicidade ao usar este guia. Para produção, deves considerar utilizar Private Endpoint para aumentar a segurança.

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

      • Para Autenticação, habilite Autenticação com Chaves de Acesso. Esta opção é a melhor escolha para simplicidade ao usar este guia. Para uma segurança ideal, recomendamos o uso do Microsoft Entra ID com identidades gerenciadas para autorizar solicitações em seu cache, se possível. A autorização usando o ID do Microsoft Entra e identidades gerenciadas oferece segurança superior e facilidade de uso em relação à 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 de política de Clustering como Enterprise para um cache não clusterizado, o que funciona para este guia onde a configuração de nó único é usada. Para obter mais informações, consulte Clustering on Enterprise.

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

  3. Na página Visão Geral, tome nota do valor do Endpoint . Você usa esse valor na variável de ambiente REDIS_CACHE_ADDRESS mais tarde.

  4. Selecione Configurações>Autenticação. Selecione Teclas de acesso e anote o valor Primário. Você usa esse valor como a variável de ambiente REDIS_CACHE_KEY mais tarde.

  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ê usa o recurso de Persistência de Sessão JCache para armazenar os dados da sessão na instância do Azure Managed Redis.

Use os comandos a seguir para clonar o código de exemplo deste guia. A amostra está no repositório open-liberty-on-aks no GitHub. Existem algumas amostras 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 vir uma mensagem sobre estar no estado detached HEAD, é seguro ignorá-la. Isso significa apenas que verificou uma tag.

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 Maven que contém as dependências e plug-ins para o aplicativo de exemplo.

O arquivo pom-redisson.xml é usado para copiar dependências para a biblioteca de cliente Redisson para o diretório de recursos compartilhados do servidor Liberty mais tarde.

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 Azure Managed Redis.

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

Execute o aplicativo de exemplo localmente

Use as etapas a seguir para criar e executar seu aplicativo de exemplo localmente. Estas 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 no 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. Esta 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 cliente 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ê verá The defaultServer server is ready to run a smarter planet. na saída do comando.

    Você deverá ver um resultado semelhante ao seguinte se a conexão do 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 a aplicação

Abra um navegador da Web para http://localhost:9080 e você verá a página inicial do aplicativo.

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

No formulário Novo café, defina valores para os campos Nome e Preçoe depois selecione Submeter. O aplicativo cria um novo café, persiste-o e também armazena a sessão HTTP na instância do Azure Managed Redis.

Depois de alguns segundos, vês o novo café mostrado na mesa Nossos cafés.

Screenshot of sample application showing new coffee created and persisted in the session of the application.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 parar o aplicativo e reiniciá-lo com o comando mvn liberty:dev.

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

Colocar a aplicação num contentor

Opcionalmente, você pode empacotar e executar o aplicativo em um contêiner usando as etapas a seguir. O aplicativo de amostra 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 seu sistema operacional. Para obter mais informações, consulte Obtenha 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 recursos

Para evitar cobranças do Azure, você deve limpar recursos desnecessários. Quando a instância do Azure Managed Redis 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óximos passos

Você pode aprender mais com as referências usadas neste guia:

  • Configurando a persistência da sessão do Liberty com JCache
  • Suporte de JCache no Redisson
  • Configuração do Servidor Open Liberty

Se você quiser implantar o aplicativo de exemplo no Azure, consulte os seguintes artigos:

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