Výukový program: Použití řídicího panelu Circuit Breaker s Azure Spring Apps

Varování

Hystrix už není v aktivním vývoji a aktuálně je v režimu údržby.

Poznámka:

Plány Basic, Standarda Enterprise vstoupily do důchodového období 17. března 2025. Další informace najdete v oznámení o vyřazení Azure Spring Apps.

Tento článek se vztahuje na:✅ Java ❎ C#

Tento článek se vztahuje na:✅ Basic/Standard ✅ Enterprise

V tomto článku se dozvíte, jak používat netflixovou turbínu a Netflix Hystrix v Azure Spring Apps. Spring Cloud Netflix Turbína se běžně používá k agregaci více streamů metrik Netflix Hystrix , aby bylo možné streamy monitorovat v jednom zobrazení pomocí řídicího panelu Hystrix.

Poznámka:

Netflix Hystrix se široce používá v mnoha existujících aplikacích Spring, ale už není v aktivním vývoji. Pokud vyvíjíte nový projekt, měli byste místo toho použít implementace Spring Cloud Circuit Breakeru, jako je odolnost 4j . Na rozdíl od Turbine zobrazené v tomto kurzu nový framework Spring Cloud Circuit Breaker sjednocuje všechny implementace svého datového kanálu metrik do Micrometer, který je podporován také v Azure Spring Apps. Další informace najdete v tématu Shromažďování metrik jističe Spring Cloud Resilience4J pomocí mikrometru (Preview).

Příprava ukázkových aplikací

Ukázka je odvozená z tohoto úložiště.

Naklonujte ukázkové úložiště do vývojového prostředí:

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

Sestavte tři aplikace, které jsou v tomto kurzu:

  • user-service: Jednoduchá služba REST, která má jeden koncový bod /personalizované/{id}.
  • služba doporučení: Jednoduchá služba REST, která má jeden koncový bod /recommendations, který je volán službou uživatele.
  • hystrix-turbína: Služba řídicího panelu Hystrix pro zobrazení datových proudů metrik Hystrix a služba Turbine, která agreguje datové proudy metrik Hystrix z jiných služeb.
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

Zřízení instance Azure Spring Apps

Postupujte podle kroků v části Rychlé zřizovací instance Azure Spring Apps: Nasaďte svou první aplikaci do Azure Spring Apps.

Nasazení aplikací do Azure Spring Apps

Tyto aplikace nepoužívají konfigurační server, takže není nutné nastavovat konfigurační server pro Azure Spring Apps. Vytvořte a nasaďte následujícím způsobem:

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

Ověření aplikací

Jakmile jsou všechny aplikace spuštěné a zjistitelné, získejte přístup k user-service s cestou https://<Azure-Spring-Apps-instance-name>-user-service.azuremicroservices.io/personalized/1 z prohlížeče. Pokud má uživatel-služba přístup recommendation-service, měli byste získat následující výstup. Pokud webová stránka nefunguje, aktualizujte webovou stránku několikrát.

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

Přístup k řídicímu panelu Hystrix a streamu metrik

Ověřte použití veřejných koncových bodů nebo privátních testovacích koncových bodů.

Použití veřejných koncových bodů

Přístup k turbíně hystrix s cestou https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/hystrix z prohlížeče. Následující obrázek znázorňuje řídicí panel Hystrix spuštěný v této aplikaci.

Snímek obrazovky řídicího panelu Hystrix, který zobrazuje podrobnosti o zpoždění a názvu

Zkopírujte adresu URL https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/turbine.stream?cluster=default streamu turbíny do textového pole a vyberte Sledovat stream. Tato akce zobrazí řídicí panel. Pokud se v prohlížeči nic nezobrazí, vygenerujte streamy stisknutím user-service koncových bodů.

Snímek obrazovky se stránkou streamu Hystrix, která zobrazuje podrobnosti o fondech okruhů a vláken

Poznámka:

V produkčním prostředí by řídicí panel Hystrix a datový proud metrik neměly být zpřístupněny internetu.

Použití privátních testovacích koncových bodů

Streamy metrik Hystrix jsou také přístupné z test-endpoint. Jako služba na straně serveru jsme nepřiřadili veřejný koncový bod pro recommendation-service, ale můžeme zobrazit jeho metriky pomocí testovacího koncového bodu na adrese https://primary:<KEY>@<SERVICE-NAME>.test.azuremicroservices.io/recommendation-service/default/actuator/hystrix.stream

Snímek obrazovky se stránkou streamu testovacího koncového bodu Hystrix

Jako webová aplikace by měl panel Hystrix fungovat na test-endpoint. Pokud nefunguje správně, mohou existovat dva důvody: zaprvé, změna základní adresy URL z test-endpoint na / použitím /<APP-NAME>/<DEPLOYMENT-NAME>, nebo zadruhé, webová aplikace používá absolutní cestu pro statické prostředky. Aby to fungovalo na test-endpoint, budete možná muset ručně upravit <base> ve front-endových souborech.

Další kroky