Esercitazione: Usare il dashboard dell'interruttore con App Azure Spring
Avviso
Hystrix non è più in fase di sviluppo attivo ed è attualmente in modalità di manutenzione.
Nota
I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.
Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.
Questo articolo si applica a:✅ Java ❎ C#
Questo articolo si applica a:✅ Basic/Standard ✅ Enterprise
Questo articolo illustra come usare Netflix Turbine e Netflix Hystrix in Azure Spring Apps. Spring Cloud Netflix Turbine è ampiamente usato per aggregare più flussi di metriche Netflix Hystrix in modo che i flussi possano essere monitorati in un'unica visualizzazione usando il dashboard hystrix .
Nota
Netflix Hystrix è ampiamente usato in molte app Spring esistenti, ma non è più in fase di sviluppo attivo. Se si sta sviluppando un nuovo progetto, è consigliabile usare invece implementazioni di Spring Cloud Circuit Breaker come resilience4j . Diversamente dalla turbina illustrata in questa esercitazione, il nuovo framework Spring Cloud Circuit Breaker unifica tutte le implementazioni della pipeline di dati delle metriche in Micrometer, supportata anche da Azure Spring Apps. Per altre informazioni, vedere Collect Spring Cloud Resilience4J Circuit Breaker Metrics with Micrometer (Preview) (Raccogliere le metriche dell'interruttore Spring Cloud Resilience4J con micrometri (anteprima).
Preparare le applicazioni di esempio
L'esempio è basato su una copia tramite fork da questo repository.
Clonare il repository di esempio nell'ambiente di sviluppo:
git clone https://github.com/Azure-Samples/azure-spring-apps-samples.git
cd azure-spring-apps-samples/hystrix-turbine-sample
Compilare le tre applicazioni incluse in questa esercitazione:
- user-service: un semplice servizio REST con un singolo endpoint di /personalized/{id}
- recommendation-service: un semplice servizio REST con un singolo endpoint di /recommendations, chiamato dal servizio utente.
- hystrix-turbine: un servizio dashboard Hystrix per visualizzare i flussi Hystrix e un servizio Turbine che aggrega il flusso delle metriche Hystrix da altri servizi.
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
Effettuare il provisioning dell'istanza di Azure Spring Apps
Seguire la procedura descritta nella sezione Effettuare il provisioning di un'istanza di Azure Spring Apps di Avvio rapido: Distribuire la prima applicazione in Azure Spring Apps.
Distribuire le applicazioni in Azure Spring Apps
Queste app non usano il server di configurazione, quindi non è necessario configurare il server di configurazione per Azure Spring Apps. Creare e distribuire le applicazioni nel modo seguente:
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
Verificare le app
Dopo che tutte le app sono in esecuzione e individuabili, accedere user-service
con il percorso https://<Azure-Spring-Apps-instance-name>-user-service.azuremicroservices.io/personalized/1
dal browser. Se user-service è in grado di accedere a recommendation-service
, dovrebbe essere visualizzato l'output seguente. Se non funziona, aggiornare la pagina Web alcune volte.
[{"name":"Product1","description":"Description1","detailsLink":"link1"},{"name":"Product2","description":"Description2","detailsLink":"link3"},{"name":"Product3","description":"Description3","detailsLink":"link3"}]
Accedere al dashboard di Hystrix e al flusso di metriche
Eseguire la verifica usando endpoint pubblici o endpoint di test privati.
Uso di endpoint pubblici
Accedere a hystrix-turbine con il percorso https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/hystrix
dal browser. La figura seguente mostra il dashboard di Hystrix in esecuzione nell'app.
Copiare l'URL https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/turbine.stream?cluster=default
del flusso turbine nella casella di testo e selezionare Monitoraggio flusso. Questa azione visualizza il dashboard. Se nel visualizzatore non viene visualizzato nulla, fare clic sugli endpoint di user-service
per generare i flussi.
Nota
In ambiente di produzione, il dashboard di Hystrix e il flusso di metriche non devono essere esposti a Internet.
Uso di endpoint di test privati
I flussi di metriche Hystrix sono accessibili anche da test-endpoint
. Come servizio back-end, non è stato assegnato un endpoint pubblico per recommendation-service
, ma è possibile visualizzarne le metriche con test-endpoint all'indirizzo https://primary:<KEY>@<SERVICE-NAME>.test.azuremicroservices.io/recommendation-service/default/actuator/hystrix.stream
.
Come app Web, il dashboard di Hystrix dovrebbe funzionare su test-endpoint
. Se non funziona correttamente, potrebbero esserci due motivi: prima, usando test-endpoint
l'URL di base da /
a /<APP-NAME>/<DEPLOYMENT-NAME>
o, in secondo luogo, l'app Web usa il percorso assoluto per la risorsa statica. Per farlo funzionare su test-endpoint
, potrebbe essere necessario modificare manualmente nei <base>
file front-end.