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

Azure Spring Apps är det nya namnet på Azure Spring Cloud-tjänsten. Även om tjänsten har ett nytt namn ser du det gamla namnet på vissa platser ett tag medan vi arbetar med att uppdatera tillgångar som skärmbilder, videor och diagram.

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-servicebö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.

Skärmbild av Hystrix-instrumentpanelen som visar information om fördröjning och rubrik.

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.

Skärmbild av sidan Hystrix-dataström som visar information om krets- och trådpooler.

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

Skärmbild av sidan Hystrix test-endpoint 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-endpointdu behöva redigera i klientdelsfilerna <base> manuellt.

Nästa steg