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.
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:
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.
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.
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.
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.
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.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.Use o seguinte comando para exportar as variáveis de ambiente
REDIS_CACHE_ADDRESS
eREDIS_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.
Verifique se o diretório de trabalho atual é java-app-jcache no seu clone local.
Execute o comando Maven
mvn clean package
e empacote o aplicativo.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 ambienteREDIS_CACHE_ADDRESS
eREDIS_CACHE_KEY
no arquivo redisson-config.yaml, que é referenciado pelo arquivo server.xml.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.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.
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.
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.
Instale o Docker para seu sistema operacional. Para obter mais informações, consulte Obtenha Docker.
Use o seguinte comando para criar a imagem do Docker:
docker build -t javaee-cafe-jcache:v1 -f src/main/docker/Dockerfile .
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:
- Implementar um aplicativo Java com Open Liberty ou WebSphere Liberty em um cluster do Serviço Kubernetes do Azure (AKS)
- Implemente o WebSphere Liberty e o Open Liberty no Red Hat OpenShift do Azure
- Implantar um aplicativo Java com o Open Liberty em Aplicativos de Contêiner do Azure
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?