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
Plany Podstawowa, Standardowa i Enterprise zostaną wycofane od połowy marca 2025 r. z 3-letnim okresem emerytalnym. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.
Zużycie standardowe i dedykowany plan zostaną wycofane od 30 września 2024 r. z całkowitym zamknięciem po sześciu miesiącach. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz Migrowanie użycia usługi Azure Spring Apps w warstwie Standardowa i dedykowanego planu 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 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-service
usł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.
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.
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-service
elementu , 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
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-endpoint
usługą , może być konieczne ręczne edytowanie <base>
plików frontonu.