Azure Redis gebruiken als sessiecache voor WebSphere Liberty of Open Liberty
In dit artikel wordt beschreven hoe u Azure Redis gebruikt als de HTTP-sessiecache voor WebSphere Liberty of Open Liberty.
In deze handleiding gaat u het volgende doen:
- Maak een Azure Managed Redis-instantie als sessiecache.
- Bereid een voorbeeldtoepassing voor die persistentie van HTTP-sessies mogelijk maakt.
- Voer de voorbeeldtoepassing lokaal uit.
Dit artikel is bedoeld om u snel te helpen bij de implementatie. Voordat u naar productie gaat, moet u Tuning Liberty verkennen.
Als u feedback wilt geven of nauw wilt samenwerken aan uw migratiescenario's met het technische team dat WebSphere op Azure-oplossingen ontwikkelt, vult u deze korte enquête over WebSphere-migratie in en neemt u uw contactgegevens op. Het team van programmamanagers, architecten en technici neemt onmiddellijk contact met u op om nauwe samenwerking te initiëren.
Vereisten
- Een Azure-abonnement. Als u geen Azure-abonnement hebt, moet u een gratis account aanmaken voordat u begint.
- Bereid een lokale computer voor waarop unix-achtig besturingssysteem is geïnstalleerd, bijvoorbeeld Ubuntu, macOS of Windows-subsysteem voor Linux.
- Installeer een Java Standard Edition-implementatie (SE) versie 17 of hoger, bijvoorbeeld Microsoft-build van OpenJDK.
- Installeer Maven 3.9.8 of hoger.
- Zorg ervoor dat Git is geïnstalleerd.
Een Azure Managed Redis-exemplaar maken
Azure Managed Redis- biedt een gegevensarchief in het geheugen op basis van de Redis Enterprise--software. Gebruik de volgende stappen om een Azure Managed Redis-exemplaar te maken en noteer de verbindingsgegevens. U gebruikt deze informatie later om de voorbeeldtoepassing te configureren.
Maak een Azure Managed Redis-exemplaar door de stappen in Quickstart te volgen: Een Beheerd Redis-exemplaar van Azure maken. Let goed op de volgende verschillen:
Selecteer in stap 3 van de sectie Een Redis-exemplaar maken, waar u zich op het tabblad Basisinformatie bevindt, een Cache-SKU die ondersteuning biedt voor Azure Managed Redis. Voor deze handleiding selecteert u Balanced (voor workloads voor algemeen gebruik met typische prestatievereisten). Zie De juiste laag kiezenvoor meer informatie.
In stap 4 van de sectie Een Redis-exemplaar maken, waar u zich op het tabblad Netwerken bevindt, selecteert u voor de optie Connectiviteitopenbaar eindpunt. Deze optie is de beste keuze voor eenvoud bij het gebruik van deze handleiding. Voor productie moet u overwegen privé-eindpunt te gebruiken voor betere beveiliging.
In stap 5 van de sectie Een Redis-exemplaar maken, waar u zich op het tabblad Geavanceerd bevindt, configureert u de volgende instellingen:
Schakel voor -authenticatie-toegangssleutel-authenticatiein. Deze optie is de beste keuze voor eenvoud bij het gebruik van deze handleiding. Voor optimale beveiliging raden we u aan Microsoft Entra ID te gebruiken met beheerde identiteiten om aanvragen voor uw cache te autoriseren, indien mogelijk. Autorisatie met behulp van Microsoft Entra ID en beheerde identiteiten biedt superieure beveiliging en gebruiksgemak ten opzichte van autorisatie van gedeelde toegangssleutels. Zie Microsoft Entra ID gebruiken voor cacheverificatievoor meer informatie over het gebruik van beheerde identiteiten met uw cache.
Stel clusterbeleid in op Enterprise- voor een niet-geclusterde cache, die geschikt is voor deze handleiding waarin configuratie van één knooppunt wordt gebruikt. Zie Clustering in Enterprisevoor meer informatie.
Nadat de implementatie is voltooid, selecteert u Ga naar de resource als u zich op de pagina Implementatie bevindt. Anders gaat u naar Azure Portal, zoekt en selecteert u uw Azure Managed Redis-exemplaar.
Noteer op de pagina Overzicht de waarde Eindpunt. U gebruikt deze waarde later in de omgevingsvariabele
REDIS_CACHE_ADDRESS
.Selecteer Instellingen>Authenticatie. Selecteer Toegangssleutels en noteer de waarde Primaire. U gebruikt deze waarde later als de omgevingsvariabele
REDIS_CACHE_KEY
.Gebruik de volgende opdracht om de omgevingsvariabelen
REDIS_CACHE_ADDRESS
enREDIS_CACHE_KEY
te exporteren:export REDIS_CACHE_ADDRESS=rediss://<your-redis-cache-endpoint> export REDIS_CACHE_KEY=<your-primary-access-key>
De voorbeeldtoepassing voorbereiden
WebSphere Liberty en Open Liberty bieden een sessiecachefunctie waarmee u HTTP-sessiegegevens in een externe cache kunt opslaan. In deze handleiding gebruikt u de functie JCache Session Persistence om de sessiegegevens op te slaan in het Azure Managed Redis-exemplaar.
Gebruik de volgende opdrachten om de voorbeeldcode voor deze handleiding te klonen. Het voorbeeld bevindt zich in de repository open-liberty-on-aks op GitHub. Er zijn enkele voorbeelden in de opslagplaats. In dit artikel wordt java-app-jcache gebruikt.
git clone https://github.com/Azure-Samples/open-liberty-on-aks.git
cd open-liberty-on-aks
git checkout 20250228
cd java-app-jcache
Als u een bericht ziet over detached HEAD
status, is dit bericht veilig te negeren. Het betekent alleen dat je een tag hebt bekeken.
De toepassing heeft de volgende bestandsstructuur:
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
Het pom.xml-bestand is het Maven-projectbestand dat de afhankelijkheden en invoegtoepassingen voor de voorbeeldtoepassing bevat.
Het bestand pom-redisson.xml wordt gebruikt voor het kopiëren van afhankelijkheden voor de Redisson-clientbibliotheek naar de map met gedeelde resources van de Liberty-server later.
De java-, resources- en webapp-mappen bevatten de broncode van de voorbeeldtoepassing.
In de map liberty/config wordt het server.xml-bestand gebruikt om de HTTP-sessiecache voor Open Liberty en WebSphere Liberty te configureren.
In de map redisson wordt het bestand redisson-config.yaml gebruikt om de verbinding met het Azure Managed Redis-exemplaar te configureren.
De docker map bevat twee Dockerfiles. Dockerfile wordt gebruikt om een afbeelding te bouwen met Open Liberty en Dockerfile-wlp wordt gebruikt om een afbeelding te bouwen met WebSphere Liberty.
De voorbeeldtoepassing lokaal uitvoeren
Gebruik de volgende stappen om uw voorbeeldtoepassing lokaal te bouwen en uit te voeren. Deze stappen maken gebruik van Maven en de liberty-maven-plugin
. Zie Een webtoepassing bouwen met Mavenvoor meer informatie over de liberty-maven-plugin
.
Controleer of de huidige werkomgeving java-app-jcache in uw lokale kloon is.
Voer de Maven-opdracht uit
mvn clean package
en verpakt de toepassing.Voer
mvn -Predisson validate
uit om het Redisson-configuratiebestand naar de juiste doellocatie te kopiëren. Met deze stap worden ook de waarden van de omgevingsvariabelenREDIS_CACHE_ADDRESS
enREDIS_CACHE_KEY
ingevoegd in het bestand redisson-config.yaml, waarnaar wordt verwezen door het bestand server.xml.Voer
mvn dependency:copy-dependencies -f pom-redisson.xml -DoutputDirectory=target/liberty/wlp/usr/shared/resources
uit om de Redisson-clientbibliotheek en de bijbehorende afhankelijkheden te kopiëren naar de map met gedeelde resources van de Liberty-server.Voer de Maven-opdracht
mvn liberty:dev
uit en start de toepassing. Als de toepassing is gestart, ziet uThe defaultServer server is ready to run a smarter planet.
in de opdrachtuitvoer.Als de Redis-verbinding is geslaagd, ziet u uitvoer die er ongeveer als volgt uitziet.
[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
De toepassing testen
Open een webbrowser naar http://localhost:9080 en je zou de startpagina van de applicatie moeten zien.
Stel in het formulier Nieuwe koffie waarden in voor de velden Naam en Prijsen selecteer vervolgens Verzenden. De toepassing maakt een nieuwe koffie, blijft deze behouden en slaat ook de HTTP-sessie op in het Azure Managed Redis-exemplaar.
Na een paar seconden ziet u de nieuwe koffie in de tabel Onze koffies.
Schermopname van voorbeeldtoepassing met nieuwe koffie gemaakt en vastgelegd in de sessie van de toepassing.
Als u wilt laten zien dat de sessiegegevens kunnen worden opgehaald uit Redis, gebruikt u Ctrl+C- om de toepassing te stoppen en opnieuw te starten met de opdracht mvn liberty:dev
.
Vernieuw vervolgens de startpagina van de toepassing. Je zou dezelfde sessiegegevens moeten zien in de sectie Nieuwe koffie. Stop de toepassing wanneer u klaar bent met testen.
De toepassing in een container plaatsen
U kunt de toepassing desgewenst inpakken en uitvoeren in een container met behulp van de volgende stappen. De voorbeeldtoepassing biedt twee Dockerfiles voor Open Liberty en WebSphere Liberty. In deze handleiding wordt het Dockerfile voor Open Liberty gebruikt, maar u kunt het Dockerfile voor WebSphere Liberty gebruiken door vergelijkbare stappen uit te voeren.
Installeer Docker voor uw besturingssysteem. Zie Docker ophalen voor meer informatie.
Gebruik de volgende opdracht om de Docker-installatiekopieën te bouwen:
docker build -t javaee-cafe-jcache:v1 -f src/main/docker/Dockerfile .
Gebruik de volgende opdracht om de Docker-container te starten:
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
Nadat de container is gestart, kunt u deze testen met behulp van stappen die vergelijkbaar zijn met de stappen die u gebruikt om de toepassing lokaal uit te voeren zonder Docker.
Hulpbronnen opschonen
Om Azure-kosten te voorkomen, moet u overbodige resources opschonen. Wanneer het Azure Managed Redis-exemplaar niet meer nodig is, zoekt u de naam van de resourcegroep en verwijdert u deze uit Azure Portal.
Zie Resourcegroepen verwijderenvoor meer informatie.
Volgende stappen
In deze handleiding vindt u meer informatie over verwijzingen die worden gebruikt:
- Liberty-sessie persistentie configureren met JCache
- JCache-ondersteuning van Redisson
- Open Liberty Server-configuratie
Als u de voorbeeldtoepassing wilt implementeren in Azure, raadpleegt u de volgende artikelen:
- Een Java-toepassing implementeren met Open Liberty of WebSphere Liberty op een AKS-cluster (Azure Kubernetes Service)
- WebSphere Liberty en Open Liberty implementeren in Azure Red Hat OpenShift
- Een Java-toepassing implementeren met Open Liberty in Azure Container Apps
Als u opties wilt verkennen om WebSphere-producten uit te voeren op Azure, zie Wat zijn oplossingen voor het uitvoeren van WebSphere-producten op Azure?