Tutorial: Usar o painel do disjuntor com o Azure Spring Apps
Aviso
O Hystrix não está mais em desenvolvimento ativo e está atualmente em modo de manutenção.
Nota
Os planos Basic, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de aposentadoria de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.
O plano de consumo padrão e dedicado será preterido a partir de 30 de setembro de 2024, com um desligamento completo após seis meses. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte Migrar consumo padrão e plano dedicado do Azure Spring Apps para Aplicativos de Contêiner do Azure.
Este artigo aplica-se a: ✔️ Java ❌ C#
Este artigo aplica-se a: ✔️ Basic/Standard ✔️ Enterprise
Este artigo mostra como usar o Netflix Turbine e o Netflix Hystrix no Azure Spring Apps. O Spring Cloud Netflix Turbine é amplamente utilizado para agregar vários streams de métricas do Netflix Hystrix para que os streams possam ser monitorados em uma única visualização usando o painel do Hystrix.
Nota
O Netflix Hystrix é amplamente utilizado em muitos aplicativos Spring existentes, mas não está mais em desenvolvimento ativo. Se você estiver desenvolvendo um novo projeto, use implementações do Spring Cloud Circuit Breaker, como resilience4j . Diferente da turbina mostrada neste tutorial, a nova estrutura do Spring Cloud Circuit Breaker unifica todas as implementações de seu pipeline de dados de métricas no Micrometer, que também é suportado pelo Azure Spring Apps. Para obter mais informações, consulte Coletar métricas de disjuntor do Spring Cloud Resilience4J com micrômetro (visualização).
Prepare seus aplicativos de exemplo
A amostra é bifurcada a partir deste repositório.
Clone o repositório de exemplo em seu ambiente de desenvolvimento:
git clone https://github.com/Azure-Samples/azure-spring-apps-samples.git
cd azure-spring-apps-samples/hystrix-turbine-sample
Crie os três aplicativos que estão neste tutorial:
- user-service: um serviço REST simples que tem um único ponto de extremidade de /personalized/{id}
- serviço de recomendação: um serviço REST simples que tem um único ponto de extremidade de /recommendations, que é chamado por user-service.
- Hystrix-turbine: Um serviço de painel Hystrix para exibir fluxos Hystrix e um serviço Turbine agregando o fluxo de métricas Hystrix de outros serviços.
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
Provisionar sua instância do Azure Spring Apps
Siga as etapas na seção Provisionar uma instância do Azure Spring Apps do Guia de início rápido: implantar seu primeiro aplicativo no Azure Spring Apps.
Implantar seus aplicativos no Azure Spring Apps
Esses aplicativos não usam o Config Server, portanto, não há necessidade de configurar o Config Server para Azure Spring Apps. Crie e implante da seguinte maneira:
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
Verificar as suas aplicações
Depois que todos os aplicativos estiverem em execução e detetáveis, acesse user-service
com o caminho https://<Azure-Spring-Apps-instance-name>-user-service.azuremicroservices.io/personalized/1
do seu navegador. Se o user-service puder acessar recommendation-service
o , você deverá obter a seguinte saída. Atualize a página da Web algumas vezes se ela não funcionar.
[{"name":"Product1","description":"Description1","detailsLink":"link1"},{"name":"Product2","description":"Description2","detailsLink":"link3"},{"name":"Product3","description":"Description3","detailsLink":"link3"}]
Acesse seu painel Hystrix e fluxo de métricas
Verifique usando pontos de extremidade públicos ou pontos de extremidade de teste privados.
Usando pontos de extremidade públicos
Acesse a turbina hystrix com o caminho https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/hystrix
do seu navegador. A figura a seguir mostra o painel do Hystrix em execução neste aplicativo.
Copie o URL https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/turbine.stream?cluster=default
do fluxo da turbina para a caixa de texto e selecione Monitorar fluxo. Esta ação exibe o painel. Se nada aparecer no visualizador, pressione os pontos finais user-service
para gerar fluxos.
Nota
Na produção, o painel Hystrix e o fluxo de métricas não devem ser expostos à Internet.
Usando pontos de extremidade de teste privados
Os fluxos de métricas do Hystrix também podem ser acessados a partir de test-endpoint
. Como um serviço de back-end, não atribuímos um ponto de extremidade público para recommendation-service
o , mas podemos mostrar suas métricas com test-endpoint em https://primary:<KEY>@<SERVICE-NAME>.test.azuremicroservices.io/recommendation-service/default/actuator/hystrix.stream
Como um aplicativo Web, o painel do Hystrix deve estar funcionando no test-endpoint
. Se ele não estiver funcionando corretamente, pode haver dois motivos: primeiro, usando test-endpoint
a URL base alterada de /
para /<APP-NAME>/<DEPLOYMENT-NAME>
, ou, segundo, o aplicativo Web está usando caminho absoluto para recurso estático. Para fazê-lo funcionar no test-endpoint
, talvez seja necessário editar manualmente os <base>
arquivos front-end.