Udostępnij za pomocą


Używanie usługi Azure Redis jako buforu sesji dla WebSphere Liberty lub Open Liberty

W tym artykule opisano, jak używać usługi Azure Redis jako pamięci podręcznej sesji HTTP dla środowiska WebSphere Liberty lub Open Liberty.

W tym przewodniku wykonasz następujące instrukcje:

  • Utwórz wystąpienie usługi Azure Managed Redis jako pamięć podręczną sesji.
  • Przygotuj przykładową aplikację, która umożliwia trwałość sesji HTTP.
  • Uruchom przykładową aplikację lokalnie.

Ten artykuł ma pomóc w szybkim rozpoczęciu wdrażania. Przed przejściem do środowiska produkcyjnego należy zapoznać się z tematem Tuning Liberty.

Jeśli chcesz przekazać opinię lub ściśle pracować nad scenariuszami migracji z zespołem inżynierów opracowującym rozwiązanie WebSphere na platformie Azure, wypełnij tę krótką ankietę dotyczącą migracji webSphere i dołącz informacje kontaktowe. Zespół menedżerów programów, architektów i inżynierów natychmiast skontaktuje się z Tobą w celu zainicjowania ścisłej współpracy.

Wymagania wstępne

  • Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
  • Przygotuj maszynę lokalną z zainstalowanym systemem operacyjnym przypominającym system Unix — na przykład Ubuntu, macOS lub Podsystem Windows dla systemu Linux.
  • Zainstaluj implementację Java Standard Edition (SE) w wersji 17 lub nowszej — na przykład wersję Microsoft OpenJDK.
  • Zainstaluj program Maven w wersji 3.9.8 lub nowszej.
  • Upewnij się, że usługa Git jest zainstalowana.

Tworzenie wystąpienia usługi Redis zarządzanej platformy Azure

Usługa Azure Managed Redis udostępnia magazyn danych w pamięci oparty na oprogramowaniu Redis Enterprise . Wykonaj poniższe kroki, aby utworzyć wystąpienie usługi Azure Managed Redis, a następnie zanotuj informacje o połączeniu. Te informacje będą później używane do konfigurowania przykładowej aplikacji.

  1. Utwórz wystąpienie usługi Redis zarządzanej platformy Azure, wykonując kroki opisane w przewodniku Szybki start: tworzenie wystąpienia usługi Azure Managed Redis. Uważnie zanotuj następujące różnice:

    1. W kroku 3 sekcji Tworzenie wystąpienia Redis, na karcie Podstawy, wybierz SKU pamięci podręcznej, które obsługuje Azure Managed Redis. W tym przewodniku wybierz pozycję Zrównoważony (w przypadku obciążeń ogólnego przeznaczenia z typowymi wymaganiami dotyczącymi wydajności).. Aby uzyskać więcej informacji, zobacz Wybieranie odpowiedniej warstwy.

    2. W kroku 4 sekcji Tworzenie instancji Redis, w karcie Sieć, dla opcji Łączność wybierz Publiczny punkt końcowy. Ta opcja jest najlepszym wyborem dla uproszczenia podczas korzystania z tego przewodnika. W przypadku środowiska produkcyjnego należy rozważyć użycie prywatnego punktu końcowego w celu uzyskania lepszych zabezpieczeń.

    3. W kroku 5 sekcji Utwórz wystąpienie Redis, wchodząc na kartę Zaawansowane, skonfiguruj następujące ustawienia:

      • W obszarze Uwierzytelnianie włącz opcję Uwierzytelnianie kluczy dostępu. Ta opcja jest najlepszym wyborem dla uproszczenia podczas korzystania z tego przewodnika. Aby uzyskać optymalne zabezpieczenia, zalecamy użycie identyfikatora Entra firmy Microsoft z tożsamościami zarządzanymi w celu autoryzowania żądań względem pamięci podręcznej, jeśli to możliwe. Autoryzacja za pomocą Microsoft Entra ID i tożsamości zarządzanych zapewnia lepsze zabezpieczenia i łatwość użytkowania w porównaniu z autoryzacją za pomocą współdzielonego klucza dostępu. Aby uzyskać więcej informacji na temat używania tożsamości zarządzanych z pamięcią podręczną, zobacz Użyj Microsoft Entra ID do uwierzytelniania pamięci podręcznej.

      • Ustaw politykę klastrowania na Enterprise dla nieklastrowanej pamięci podręcznej, co działa w tym przewodniku z konfiguracją pojedynczego węzła. Aby uzyskać więcej informacji, zobacz Clustering on Enterprise (Klastrowanie w przedsiębiorstwie).

  2. Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu , jeśli jesteś na stronie Wdrożenie . W przeciwnym razie przejdź do portalu Azure, znajdź swoją instancję Azure Managed Redis i ją wybierz.

  3. Na stronie Przegląd zanotuj wartość Punkt końcowy . Ta wartość zostanie użyta w zmiennej środowiskowej REDIS_CACHE_ADDRESS później.

  4. Wybierz Ustawienia>Uwierzytelnianie. Wybierz pozycję Klucze dostępu i zanotuj wartość Podstawowa . Ta wartość jest używana jako zmienna środowiskowa REDIS_CACHE_KEY później.

  5. Użyj następującego polecenia, aby wyeksportować zmienne REDIS_CACHE_ADDRESS środowiskowe i REDIS_CACHE_KEY:

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

Przygotowywanie przykładowej aplikacji

WebSphere Liberty i Open Liberty udostępniają funkcję pamięci podręcznej sesji, która umożliwia przechowywanie danych sesji HTTP w zewnętrznej pamięci podręcznej. W tym przewodniku użyjesz funkcji Trwałości sesji usługi JCache do przechowywania danych sesji w instancji usługi Azure Managed Redis.

Użyj następujących poleceń, aby sklonować przykładowy kod dla tego przewodnika. Przykład znajduje się w repozytorium open-liberty-on-aks w witrynie GitHub. W repozytorium znajduje się kilka przykładów. W tym artykule jest używana usługa 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

Jeśli zostanie wyświetlony komunikat o stanie detached HEAD, ten komunikat jest bezpieczny do zignorowania. To po prostu oznacza, że obejrzałeś tag.

Aplikacja ma następującą strukturę plików:

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

Plik pom.xml to plik projektu Maven zawierający zależności i wtyczki dla przykładowej aplikacji.

Plik pom-redisson.xml służy do kopiowania zależności biblioteki klienta Redisson do katalogu zasobów udostępnionych serwera Liberty później.

Katalogi java, resources i webapp zawierają kod źródłowy przykładowej aplikacji.

W katalogu liberty/config plik server.xml służy do konfigurowania pamięci podręcznej sesji HTTP dla biblioteki Open Liberty i WebSphere Liberty.

W katalogu redisson plik redisson-config.yaml służy do konfigurowania połączenia z instancją Azure Managed Redis.

Katalog docker zawiera dwa pliki Dockerfile. Plik Dockerfile służy do budowania obrazu z Open Liberty, a Dockerfile-wlp do budowania obrazu z WebSphere Liberty.

Uruchamianie przykładowej aplikacji lokalnie

Wykonaj poniższe kroki, aby skompilować i uruchomić przykładową aplikację lokalnie. W tych krokach są używane narzędzia Maven i liberty-maven-plugin. Aby uzyskać więcej informacji na temat programu liberty-maven-plugin, zobacz Tworzenie aplikacji internetowej za pomocą narzędzia Maven.

  1. Sprawdź, czy bieżący katalog roboczy to java-app-jcache w klonie lokalnym.

  2. Uruchom polecenie mvn clean package Maven i spakuj aplikację.

  3. Uruchom polecenie mvn -Predisson validate , aby skopiować plik konfiguracji Redisson do właściwej lokalizacji docelowej. Ten krok wstawia również wartości zmiennych REDIS_CACHE_ADDRESS środowiskowych i REDIS_CACHE_KEY do pliku redisson-config.yaml , do którego odwołuje się plik server.xml .

  4. Uruchom polecenie mvn dependency:copy-dependencies -f pom-redisson.xml -DoutputDirectory=target/liberty/wlp/usr/shared/resources , aby skopiować bibliotekę klienta Redisson i jej zależności do katalogu zasobów udostępnionych serwera Liberty.

  5. Uruchom polecenie mvn liberty:dev Maven i uruchom aplikację. Jeśli aplikacja została pomyślnie uruchomiona, powinieneś zobaczyć The defaultServer server is ready to run a smarter planet. w danych wyjściowych polecenia.

    Jeśli połączenie z usługą Redis zakończy się pomyślnie, powinny zostać wyświetlone dane wyjściowe podobne do poniższych.

    [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
    

Testowanie aplikacji

Otwórz przeglądarkę internetową, przejdź na http://localhost:9080 i powinieneś zobaczyć stronę główną aplikacji.

Zrzut ekranu przedstawiający pomyślnie uruchomioną aplikację Java liberty.

W formularzu Nowa kawa ustaw wartości pól Nazwa i Cena, a następnie wybierz pozycję Prześlij. Aplikacja tworzy nową kawę, utrwala ją, a także przechowuje sesję HTTP w wystąpieniu usługi Azure Managed Redis.

Po kilku sekundach zobaczysz nową kawę wyświetlaną w tabeli Nasze kawy.

Screenshot of sample application showing new coffee created and persisted in the session of the application.Zrzut ekranu przedstawiający przykładową aplikację przedstawiającą nową kawę utworzoną i utrwalone w sesji aplikacji.

Aby zademonstrować, że dane sesji można pobrać z usługi Redis, użyj Ctrl+C , aby zatrzymać aplikację i ponownie uruchomić ją za mvn liberty:dev pomocą polecenia .

Następnie odśwież stronę główną aplikacji. Powinny zostać wyświetlone te same dane sesji w sekcji Nowa kawa. Zatrzymaj aplikację po zakończeniu testowania.

Konteneryzowanie aplikacji

Opcjonalnie możesz spakować i uruchomić aplikację w kontenerze, wykonując następujące kroki. Przykładowa aplikacja udostępnia dwa pliki Dockerfile dla oprogramowania Open Liberty i WebSphere Liberty. W tym przewodniku jest używany plik Dockerfile for Open Liberty, ale możesz użyć pliku Dockerfile for WebSphere Liberty, wykonując podobne kroki.

  1. Zainstaluj platformę Docker dla systemu operacyjnego. Aby uzyskać więcej informacji, zobacz Get Docker.

  2. Użyj następującego polecenia, aby zbudować obraz Docker:

    docker build -t javaee-cafe-jcache:v1 -f src/main/docker/Dockerfile .
    
  3. Użyj następującego polecenia, aby uruchomić kontener platformy 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
    

    Po uruchomieniu kontenera można go przetestować, wykonując kroki podobne do tych, których używasz do lokalnego uruchamiania aplikacji bez platformy Docker.

Czyszczenie zasobów

Aby uniknąć opłat za platformę Azure, należy wyczyścić niepotrzebne zasoby. Gdy wystąpienie usługi Azure Managed Redis nie jest już potrzebne, znajdź nazwę grupy zasobów i usuń ją z portalu Azure.

Aby uzyskać więcej informacji, zobacz Usuwanie grup zasobów.

Następne kroki

Więcej informacji można dowiedzieć się z odwołań używanych w tym przewodniku:

Jeśli chcesz wdrożyć przykładową aplikację na platformie Azure, zapoznaj się z następującymi artykułami:

Aby zapoznać się z opcjami uruchamiania produktów WebSphere na platformie Azure, zobacz Co to są rozwiązania do uruchamiania rodziny produktów WebSphere na platformie Azure?