Udostępnij za pośrednictwem


Samouczek: używanie pulpitu nawigacyjnego Circuit Breaker z usługą Azure Spring Apps

Ostrzeżenie

Program Hystrix nie jest już w aktywnym rozwoju i jest obecnie w trybie konserwacji.

Uwaga

Plany Basic, Standardi Enterprise weszły w okres wycofywania 17 marca 2025 r. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.

Plan dotyczący zużycia standardowego oraz dedykowany plan zostały wycofane 30 września 2024 r., z całkowitym zamknięciem do końca marca 2025 r. Aby uzyskać więcej informacji, zobacz Migracja standardowego zużycia i dedykowanego planu usługi Azure Spring Apps do usługi Azure Container Apps.

Ten artykuł dotyczy:✅ Java ❎ C#

Ten artykuł dotyczy:✅ Podstawowa/Standardowa ✅ Enterprise

W tym artykule pokazano, jak korzystać z platform Netflix Turbine i Netflix Hystrix w usłudze Azure Spring Apps. Turbina Spring Cloud Netflix jest powszechnie używana do agregowania wielu strumieni metryk Netflix Hystrix, dzięki czemu strumienie można monitorować w jednym widoku przy użyciu pulpitu nawigacyjnego Hystrix.

Uwaga

Program Netflix Hystrix jest powszechnie używany w wielu istniejących aplikacjach Spring, ale nie jest już w aktywnym rozwoju. Jeśli tworzysz nowy projekt, zamiast tego należy użyć implementacji Spring Cloud Circuit Breaker, takich jak resilience4j. Inaczej niż turbina pokazana w tym samouczku, nowa struktura wyłącznika Spring Cloud łączy wszystkie implementacje potoku danych metryk z mikrometrem, który jest również obsługiwany przez usługę Azure Spring Apps. Aby uzyskać więcej informacji, zobacz Collect Spring Cloud Resilience4J Circuit Breaker Metrics with Micrometer (Wersja zapoznawcza).

Przygotowywanie przykładowych aplikacji

Przykład jest sklonowany z tego repozytorium.

Sklonuj przykładowe repozytorium do środowiska programistycznego:

git clone https://github.com/Azure-Samples/azure-spring-apps-samples.git
cd azure-spring-apps-samples/hystrix-turbine-sample

Zbuduj trzy aplikacje, które znajdują się w tym samouczku:

  • user-service: prosta usługa REST, która ma pojedynczy punkt końcowy /personalized/{id}
  • recommendation-service: prosta usługa REST, która ma pojedynczy endpoint /recommendations, który jest wywoływany przez user-service.
  • hystrix-turbina: usługa pulpitu Hystrix do wizualizacji strumieni Hystrix oraz usługa turbiny agregująca strumienie metryk Hystrix z innych usług.
mvn clean package -D skipTests -f user-service/pom.xml
mvn clean package -D skipTests -f recommendation-service/pom.xml
mvn clean package -D skipTests -f hystrix-turbine/pom.xml

Utwórz instancję usługi Azure Spring Apps

Wykonaj kroki opisane w sekcji Aprowizowanie instancji Azure Spring Apps w Szybki start: Wdrażanie pierwszej aplikacji do Azure Spring Apps.

Wdrażanie aplikacji w usłudze Azure Spring Apps

Te aplikacje nie używają Config Server, więc nie ma potrzeby konfigurowania Config Server dla usługi Azure Spring Apps. Utwórz i wdróż w następujący sposób:

az configure --defaults \
    group=<resource-group-name> \
    spring=<Azure-Spring-Apps-instance-name>

az spring app create --name user-service --assign-endpoint
az spring app create --name recommendation-service
az spring app create --name hystrix-turbine --assign-endpoint

az spring app deploy \
    --name user-service \
    --artifact-path user-service/target/user-service.jar
az spring app deploy \
    --name recommendation-service \
    --artifact-path recommendation-service/target/recommendation-service.jar
az spring app deploy \
    --name hystrix-turbine \
    --artifact-path hystrix-turbine/target/hystrix-turbine.jar

Weryfikowanie aplikacji

Po uruchomieniu i odnalezieniu wszystkich aplikacji uzyskaj dostęp za user-service pomocą ścieżki https://<Azure-Spring-Apps-instance-name>-user-service.azuremicroservices.io/personalized/1 z przeglądarki. Jeśli usługa użytkownika może uzyskać dostęp do recommendation-service, powinny zostać wyświetlone następujące dane wyjściowe. Odśwież stronę internetową kilka razy, jeśli nie będzie działać.

[{"name":"Product1","description":"Description1","detailsLink":"link1"},{"name":"Product2","description":"Description2","detailsLink":"link3"},{"name":"Product3","description":"Description3","detailsLink":"link3"}]

Uzyskaj dostęp do pulpitu nawigacyjnego i strumienia metryk programu Hystrix

Sprawdź przy użyciu publicznych punktów końcowych lub prywatnych punktów końcowych testu.

Korzystanie z publicznych punktów końcowych

Uzyskaj dostęp do turbiny hystrix przy użyciu ścieżki https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/hystrix z przeglądarki. Na poniższej ilustracji przedstawiono pulpit nawigacyjny programu Hystrix uruchomiony w tej aplikacji.

Zrzut ekranu pulpitu nawigacyjnego programu Hystrix pokazujący szczegóły dotyczące opóźnienia i tytułu.

Skopiuj adres URL https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/turbine.stream?cluster=default strumienia turbiny do pola tekstowego i wybierz pozycję Monitoruj strumień. Ta akcja powoduje wyświetlenie pulpitu nawigacyjnego. Jeśli nic nie jest wyświetlane w przeglądarce, naciśnij user-service punkty końcowe, aby wygenerować strumienie.

Zrzut ekranu przedstawiający stronę strumienia Hystrix zawierającą szczegóły pul obwodów i wątków.

Uwaga

W środowisku produkcyjnym pulpit nawigacyjny Hystrix i strumień metryk nie powinny być uwidocznione w Internecie.

Korzystanie z prywatnych punktów końcowych testu

Strumienie metryk programu Hystrix są również dostępne z witryny test-endpoint. Jako usługa backendowa nie przypisaliśmy publicznego punktu końcowego dla recommendation-service, ale możemy pokazać jego metryki za pomocą punktu końcowego testów w https://primary:<KEY>@<SERVICE-NAME>.test.azuremicroservices.io/recommendation-service/default/actuator/hystrix.stream

Zrzut ekranu przedstawiający stronę strumienia testowego punktu końcowego programu Hystrix.

Jako aplikacja webowa, pulpit nawigacyjny Hystrix powinien działać na test-endpoint. Jeśli nie działa prawidłowo, mogą istnieć dwa powody: po pierwsze, zmieniając używając test-endpoint podstawowy adres URL z / na /<APP-NAME>/<DEPLOYMENT-NAME>, lub, po drugie, aplikacja internetowa używa ścieżki bezwzględnej dla zasobu statycznego. Aby uzyskać działanie na test-endpoint, może być konieczne ręczne edytowanie <base> w plikach front-end.

Następne kroki