Delen via


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.

  1. 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:

    1. 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.

    2. 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.

    3. 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.

  2. 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.

  3. Noteer op de pagina Overzicht de waarde Eindpunt. U gebruikt deze waarde later in de omgevingsvariabele REDIS_CACHE_ADDRESS.

  4. Selecteer Instellingen>Authenticatie. Selecteer Toegangssleutels en noteer de waarde Primaire. U gebruikt deze waarde later als de omgevingsvariabele REDIS_CACHE_KEY.

  5. Gebruik de volgende opdracht om de omgevingsvariabelen REDIS_CACHE_ADDRESS en REDIS_CACHE_KEYte 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.

  1. Controleer of de huidige werkomgeving java-app-jcache in uw lokale kloon is.

  2. Voer de Maven-opdracht uit mvn clean package en verpakt de toepassing.

  3. 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 omgevingsvariabelen REDIS_CACHE_ADDRESS en REDIS_CACHE_KEY ingevoegd in het bestand redisson-config.yaml, waarnaar wordt verwezen door het bestand server.xml.

  4. 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.

  5. Voer de Maven-opdracht mvn liberty:dev uit en start de toepassing. Als de toepassing is gestart, ziet u The 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.

Schermopname van de Java liberty-toepassing die wordt uitgevoerd.

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.

Screenshot of sample application showing new coffee created and persisted in the session of the application.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.

  1. Installeer Docker voor uw besturingssysteem. Zie Docker ophalen voor meer informatie.

  2. Gebruik de volgende opdracht om de Docker-installatiekopieën te bouwen:

    docker build -t javaee-cafe-jcache:v1 -f src/main/docker/Dockerfile .
    
  3. 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:

Als u de voorbeeldtoepassing wilt implementeren in Azure, raadpleegt u de volgende artikelen:

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?