Samouczek: korzystanie z pulpitu nawigacyjnego wyłącznika w usłudze Azure Spring Apps

Ostrzeżenie

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

Uwaga

Azure Spring Apps to nowa nazwa usługi Azure Spring Cloud. Mimo że usługa ma nową nazwę, stara nazwa będzie widoczna w niektórych miejscach przez pewien czas, ponieważ pracujemy nad aktualizowaniem zasobów, takich jak zrzuty ekranu, filmy wideo i diagramy.

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 Programu Netflix Hystrix, dzięki czemu strumienie można monitorować w jednym widoku przy użyciu pulpitu nawigacyjnego programu 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 wyłącznika Spring Cloud, takich jak odporność4j . 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 rozwidlony 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

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

  • user-service: prosta usługa REST, która ma jeden punkt końcowy /personald/{id}
  • recommendation-service: prosta usługa REST, która ma pojedynczy punkt końcowy /recommendations, który jest wywoływany przez użytkownika-usługę.
  • hystrix-turbina: usługa pulpitu nawigacyjnego Hystrix do wyświetlania strumieni Hystrix i usługi turbiny agregujące strumień 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

Aprowizuj wystąpienie usługi Azure Spring Apps

Wykonaj kroki opisane w sekcji Aprowizuj wystąpienie usługi Azure Spring Apps w przewodniku Szybki start: wdrażanie pierwszej aplikacji w usłudze Azure Spring Apps.

Wdrażanie aplikacji w usłudze Azure Spring Apps

Te aplikacje nie używają serwera konfiguracji, więc nie ma potrzeby konfigurowania serwera konfiguracji 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 użytkownik-usługa może uzyskać dostęp do recommendation-serviceusługi , 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"}]

Uzyskiwanie dostępu 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 przedstawiający pulpit nawigacyjny programu Hystrix przedstawiający szczegóły 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 strumień pulpitu nawigacyjnego i metryk programu Hystrix nie powinien być uwidoczniony 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 zaplecza nie przypisaliśmy publicznego punktu końcowego dla recommendation-serviceelementu , ale możemy pokazać jego metryki z testowym punktem końcowym 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 internetowa pulpit nawigacyjny programu Hystrix powinien działać na .test-endpoint Jeśli nie działa prawidłowo, może istnieć dwa powody: po pierwsze, używając test-endpoint zmienionego podstawowego adresu URL z / na /<APP-NAME>/<DEPLOYMENT-NAME>, lub, po drugie, aplikacja internetowa używa ścieżki bezwzględnej dla zasobu statycznego. Aby móc pracować z test-endpointusługą , może być konieczne ręczne edytowanie <base> plików frontonu.

Następne kroki