Freigeben über


Tutorial: Verwenden des Trennschalterdashboards mit Azure Spring Apps

Warnung

Hystrix wird nicht mehr aktiv entwickelt und befindet sich derzeit im Wartungsmodus.

Hinweis

Die Pläne Basic, Standard und Enterprise gelten ab Mitte März 2025 als veraltet und werden über einen Zeitraum von drei Jahren eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie in der Ankündigung zur Einstellung von Azure Spring Apps.

Der Plan Standardverbrauch und dediziert gilt ab dem 30. September 2024 als veraltet und wird nach sechs Monaten vollständig eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie unter Migrieren des Plans „Standardverbrauch und dediziert“ von Azure Spring Apps zu Azure Container Apps.

Dieser Artikel gilt für: ✔️ Java ❌ C#

Dieser Artikel gilt für: ✔️ Basic/Standard ✔️ Enterprise

In diesem Artikel erfahren Sie, wie Sie Netflix Turbine und Netflix Hystrix in Azure Spring Apps verwenden. Spring Cloud Netflix Turbine wird häufig verwendet, um mehrere Netflix Hystrix-Metrikdatenströme zu aggregieren, sodass die Datenströme über das Hystrix-Dashboard in einer einzelnen Ansicht überwacht werden können.

Hinweis

Netflix Hystrix wird in vielen bestehenden Spring Apps-Apps verwendet, befindet sich aber nicht mehr in aktiver Entwicklung. Wenn Sie ein neues Projekt entwickeln, sollten Sie stattdessen Spring Cloud-Leistungsschutzschalter-Implementierungen wie resilience4j verwenden. Anders als die in diesem Tutorial gezeigte Turbine vereinigt das neue Spring Cloud-Trennschalterframework alle Implementierungen seiner Metrikdatenpipeline in Micrometer. Dies wird auch von Azure Spring Apps unterstützt. Weitere Informationen finden Sie unter Erfassen von Metriken zum Spring Cloud Resilience4J-Leistungsschutzschalter mit Micrometer (Vorschau).

Vorbereiten der Beispielanwendungen

Das Beispiel wird aus diesem Repository geforkt.

Klonen Sie das Beispielrepository in Ihre Entwicklungsumgebung:

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

Erstellen Sie die drei Anwendungen, die sich in diesem Tutorial befinden:

  • user-service: Ein einfacher REST-Dienst mit einem einzelnen Endpunkt von „/personalized/{id}“
  • recommendation-service: Ein einfacher REST-Dienst mit einem einzelnen Endpunkt von „/recommendations“, der von „user-service“ aufgerufen wird.
  • hystrix-turbine: Ein Hystrix-Dashboarddienst zur Anzeige von Hystrix-Datenströmen und ein Turbine-Dienst, der Hystrix-Metrikdatenströme aus anderen Diensten zusammenfasst.
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

Bereitstellen Ihrer Azure Spring Apps-Instanz

Befolgen Sie die Schritte im Abschnitt Bereitstellen einer Instanz in Azure Spring Apps von Schnellstart: Bereitstellen Ihrer ersten Anwendung in Azure Spring Apps.

Bereitstellen von Anwendungen in Azure Spring Apps

Diese Apps verwenden keinen Config Server, weshalb es nicht notwendig ist, Config Server für Azure Spring Apps einzurichten. Führen Sie die Erstellung und Bereitstellung wie folgt durch:

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

Überprüfen Sie Ihre Apps.

Nachdem alle Apps ausgeführt werden und auffindbar sind, greifen Sie auf user-service mit dem Pfad https://<Azure-Spring-Apps-instance-name>-user-service.azuremicroservices.io/personalized/1 von Ihrem Browser aus zu. Wenn der Benutzerdienst auf recommendation-service zugreifen kann, sollten Sie die folgende Ausgabe erhalten. Aktualisieren Sie die Webseite mehrmals, wenn sie nicht funktioniert.

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

Zugreifen auf Ihr Hystrix-Dashboard und den Metrikdatenstrom

Führen Sie die Überprüfung mit öffentlichen Endpunkten oder privaten Testendpunkten durch.

Verwenden öffentlicher Endpunkte

Greifen Sie mit Ihrem Browser über den Pfad https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/hystrix auf „hystrix-turbine“ zu. In der folgenden Abbildung ist das Hystrix-Dashboard in dieser App dargestellt.

Screenshot des Hystrix-Dashboards mit den Details „Verzögerung“ und „Titel“.

Kopieren Sie die URL des Turbine-Datenstroms https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/turbine.stream?cluster=default in das Textfeld, und wählen Sie Datenstrom überwachen aus. Durch diese Aktion wird das Dashboard angezeigt. Wenn im Viewer nichts angezeigt wird, erfassen Sie die user-service-Endpunkte, um Datenströme zu generieren.

Screenshot der Hystrix-Datenstromseite, auf der die Details zu Verbindungen und Threadpools angezeigt werden.

Hinweis

In der Produktionsumgebung sollten das Hystrix-Dashboard und der Metrikdatenstrom nicht über das Internet zugänglich sein.

Verwenden privater Testendpunkte

Hystrix-Metrikdatenströme sind auch von test-endpoint aus zugänglich. Als Back-End-Dienst haben wir keinen öffentlichen Endpunkt für recommendation-service zugewiesen, aber wir können seine Metriken mit einem Testendpunkt bei https://primary:<KEY>@<SERVICE-NAME>.test.azuremicroservices.io/recommendation-service/default/actuator/hystrix.stream anzeigen.

Screenshot der Datenstromseite des Hystrix-Testendpunkts.

Als Web-App sollte das Hystrix-Dashboard mit test-endpoint arbeiten. Wenn es nicht ordnungsgemäß funktioniert, kann dies zwei Gründe haben: Die Verwendung von test-endpoint hat die Basis-URL von / in /<APP-NAME>/<DEPLOYMENT-NAME> geändert oder die Web-App verwendet absolute Pfade für statische Ressourcen. Damit es mit test-endpoint funktioniert, müssen Sie möglicherweise die <base> in den Front-End-Dateien manuell bearbeiten.

Nächste Schritte