Delen via


Zelfstudie: Circuitonderbrekerdashboard gebruiken met Azure Spring Apps

Waarschuwing

Hystrix is niet langer actief in ontwikkeling en bevindt zich momenteel in de onderhoudsmodus.

Notitie

Azure Spring Apps is de nieuwe naam voor de Azure Spring Cloud-service. Hoewel de service een nieuwe naam heeft, ziet u de oude naam op sommige plaatsen terwijl we werken aan het bijwerken van assets, zoals schermopnamen, video's en diagrammen.

Dit artikel is van toepassing op: ✔️ Java ❌ C#

Dit artikel is van toepassing op: ✔️ Basic/Standard ✔️ Enterprise

In dit artikel leest u hoe u Netflix Turbine en Netflix Hystrix gebruikt in Azure Spring Apps. Spring Cloud Netflix Turbine wordt veel gebruikt om meerdere streaminggegevens van Netflix Hystrix samen te voegen, zodat streams in één weergave kunnen worden bewaakt met behulp van hystrix-dashboard.

Notitie

Netflix Hystrix wordt veel gebruikt in veel bestaande Spring-apps, maar het is niet langer actief in ontwikkeling. Als u een nieuw project ontwikkelt, moet u in plaats daarvan Spring Cloud Circuit Breaker-implementaties zoals resilience4j gebruiken. Anders dan Turbine die in deze zelfstudie wordt weergegeven, worden met het nieuwe Spring Cloud Circuit Breaker-framework alle implementaties van de metrische gegevenspijplijn samengevoegd in Micrometer, die ook wordt ondersteund door Azure Spring Apps. Zie Spring Cloud Resilience4J Circuit Breaker Metrics verzamelen met Micrometer (preview) voor meer informatie.

Uw voorbeeldtoepassingen voorbereiden

Het voorbeeld is gevorkt van deze opslagplaats.

Kloon de voorbeeldopslagplaats naar uw ontwikkelomgeving:

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

Bouw de drie toepassingen in deze zelfstudie:

  • user-service: een eenvoudige REST-service met één eindpunt van /gepersonaliseerde/{id}
  • aanbevelingsservice: een eenvoudige REST-service met één eindpunt van /recommendations, dat wordt aangeroepen door de gebruikersservice.
  • hystrix-turbine: een Hystrix-dashboardservice om Hystrix-stromen en een Turbine-service weer te geven die hystrix metrics stream van andere services samenvoegt.
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

Uw Azure Spring Apps-exemplaar inrichten

Volg de stappen in de sectie Een exemplaar van Azure Spring Apps inrichten van quickstart: Uw eerste toepassing implementeren in Azure Spring Apps.

Uw toepassingen implementeren in Azure Spring Apps

Deze apps gebruiken geen configuratieserver, dus u hoeft geen configuratieserver in te stellen voor Azure Spring Apps. Maak en implementeer als volgt:

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

Uw apps verifiëren

Nadat alle apps worden uitgevoerd en detecteerbaar zijn, hebt u toegang tot user-service het pad https://<Azure-Spring-Apps-instance-name>-user-service.azuremicroservices.io/personalized/1 vanuit uw browser. Als de gebruikersservice toegang heeft tot recommendation-service, moet u de volgende uitvoer zien. Vernieuw de webpagina een paar keer als het niet werkt.

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

Open uw Hystrix-dashboard en metrische gegevensstroom

Verifieer met openbare eindpunten of privé-testeindpunten.

Openbare eindpunten gebruiken

Ga naar hystrix-turbine met het pad https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/hystrix in uw browser. In de volgende afbeelding ziet u de Hystrix-dashboard die wordt uitgevoerd in deze app.

Schermopname van het Hystrix-dashboard met de details van vertraging en titel.

Kopieer de URL https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/turbine.stream?cluster=default van de turbinestroom naar het tekstvak en selecteer Stream bewaken. Met deze actie wordt het dashboard weergegeven. Als er niets wordt weergegeven in de viewer, gebruikt u de user-service-eindpunten om gegevensstromen te genereren.

Schermopname van de hystrix-streampagina met de details van circuit- en threadpools.

Notitie

In productie mogen het dashboard en de gegevensstroom van Hystrix niet bereikbaar zijn via internet.

Privé-testeindpunten gebruiken

Hystrix-gegevensstromen zijn ook toegankelijk vanaf test-endpoint. Omdat het een backend-service is, hebben we geen openbaar eindpunt toegewezen aan recommendation-service, maar we kunnen de metrische gegevens wel weergeven met een testeindpunt op https://primary:<KEY>@<SERVICE-NAME>.test.azuremicroservices.io/recommendation-service/default/actuator/hystrix.stream

Schermopname van de pagina hystrix-test-eindpuntstream.

Als web-app moet Hystrix-dashboard werken op test-endpoint. Als deze niet goed werkt, kan het zijn dat er twee redenen zijn: eerst met behulp van test-endpoint de basis-URL gewijzigd van / in /<APP-NAME>/<DEPLOYMENT-NAME>, of, ten tweede, gebruikt de web-app een absoluut pad voor statische resource. Als u aan de slag test-endpointwilt gaan, moet u de <base> front-endbestanden mogelijk handmatig bewerken.

Volgende stappen