Självstudie: Använda instrumentpanelen för kretsbrytare med Azure Spring Apps
Varning
Hystrix är inte längre i aktiv utveckling och är för närvarande i underhållsläge.
Kommentar
Basic-, Standard- och Enterprise-planerna kommer att vara inaktuella från och med mitten av mars 2025, med en 3-årig pensionsperiod. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i meddelandet om azure Spring Apps-pensionering.
Standardförbrukningen och den dedikerade planen kommer att vara inaktuell från och med den 30 september 2024, med en fullständig avstängning efter sex månader. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i Migrera Azure Spring Apps Standard-förbrukning och dedikerad plan till Azure Container Apps.
Den här artikeln gäller för: ✔️ Java ❌ C#
Den här artikeln gäller för: ✔️ Basic/Standard ✔️ Enterprise
Den här artikeln visar hur du använder Netflix Turbine och Netflix Hystrix i Azure Spring Apps. Spring Cloud Netflix Turbine används ofta för att aggregera flera Netflix Hystrix-måttströmmar så att strömmar kan övervakas i en enda vy med hystrix-instrumentpanelen.
Kommentar
Netflix Hystrix används ofta i många befintliga Spring-appar men är inte längre i aktiv utveckling. Om du utvecklar ett nytt projekt bör du använda Spring Cloud Circuit Breaker-implementeringar som resilience4j i stället. Det nya Spring Cloud Circuit Breaker-ramverket skiljer sig från Turbine som visas i den här självstudien och förenar alla implementeringar av dess måttdatapipeline till Micrometer, som också stöds av Azure Spring Apps. Mer information finns i Samla in Spring Cloud Resilience4J Circuit Breaker Metrics with Micrometer (Preview).
Förbereda dina exempelprogram
Exemplet förgrenas från den här lagringsplatsen.
Klona exempellagringsplatsen till din utvecklingsmiljö:
git clone https://github.com/Azure-Samples/azure-spring-apps-samples.git
cd azure-spring-apps-samples/hystrix-turbine-sample
Skapa de tre program som finns i den här självstudien:
- user-service: En enkel REST-tjänst som har en enda slutpunkt för /personalized/{id}
- recommendation-service: En enkel REST-tjänst som har en enda slutpunkt för /recommendations, som anropas av användartjänsten.
- hystrix-turbine: En Hystrix-instrumentpanelstjänst för att visa Hystrix-strömmar och en Turbintjänst som aggregerar Hystrix-måttströmmen från andra tjänster.
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
Etablera din Azure Spring Apps-instans
Följ stegen i avsnittet Etablera en instans av Azure Spring Apps i Snabbstart: Distribuera ditt första program till Azure Spring Apps.
Distribuera dina program till Azure Spring Apps
Dessa appar använder inte Config Server, så du behöver inte konfigurera Config Server för Azure Spring Apps. Skapa och distribuera på följande sätt:
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
Verifiera dina appar
När alla appar körs och kan identifieras kan du komma åt user-service
sökvägen https://<Azure-Spring-Apps-instance-name>-user-service.azuremicroservices.io/personalized/1
från webbläsaren. Om användartjänsten kan komma åt recommendation-service
bör du få följande utdata. Uppdatera webbsidan några gånger om den inte fungerar.
[{"name":"Product1","description":"Description1","detailsLink":"link1"},{"name":"Product2","description":"Description2","detailsLink":"link3"},{"name":"Product3","description":"Description3","detailsLink":"link3"}]
Få åtkomst till hystrix-instrumentpanelen och måttströmmen
Kontrollera att du använder offentliga slutpunkter eller privata testslutpunkter.
Använda offentliga slutpunkter
Få åtkomst till hystrix-turbinen med sökvägen https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/hystrix
från webbläsaren. Följande bild visar Hystrix-instrumentpanelen som körs i den här appen.
Kopiera Turbine Stream-URL:en https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/turbine.stream?cluster=default
till textrutan och välj Övervaka ström. Den här åtgärden visar instrumentpanelen. Om inget visas i visningsprogrammet trycker du på slutpunkterna user-service
för att generera strömmar.
Kommentar
I produktion bör Hystrix-instrumentpanelen och måttströmmen inte exponeras för Internet.
Använda privata testslutpunkter
Hystrix-måttströmmar är också tillgängliga från test-endpoint
. Som en serverdelstjänst tilldelar vi inte någon offentlig slutpunkt för recommendation-service
, men vi kan visa dess mått med testslutpunkten på https://primary:<KEY>@<SERVICE-NAME>.test.azuremicroservices.io/recommendation-service/default/actuator/hystrix.stream
Som webbapp bör Hystrix-instrumentpanelen fungera på test-endpoint
. Om den inte fungerar korrekt kan det finnas två orsaker: för det första att använda test-endpoint
ändrade bas-URL:en från /
till /<APP-NAME>/<DEPLOYMENT-NAME>
, eller, för det andra, webbappen använder absolut sökväg för statisk resurs. För att få det att fungera kan test-endpoint
du behöva redigera i klientdelsfilerna <base>
manuellt.