Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aviso
O Hystrix não está mais em desenvolvimento ativo e está atualmente em modo de manutenção.
Nota
Os planos Basic, Standarde Enterprise entraram em um período de aposentadoria em 17 de março de 2025. Para obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.
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 é derivada 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 endpoint de /personalized/{id}
- serviço de recomendação: um serviço REST simples que tem um único endpoint de /recommendations, que é chamado por user-service.
- Hystrix-turbine: Um serviço de painel Hystrix para exibir fluxos Hystrix, juntamente com um serviço Turbine que agrega fluxos de métricas Hystrix provenientes 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 serviço do utilizador puder aceder recommendation-service, deverás 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"}]
Aceda ao painel Hystrix e ao fluxo de métricas.
Verifique usando endpoints públicos ou endpoints de teste privados.
Usando interfaces públicas
Aceda ao Hystrix-Turbine com o caminho https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/hystrix no 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, acione os user-service endpoints para gerar fluxos.
Nota
Na produção, o painel Hystrix e o fluxo de métricas não devem ser expostos à Internet.
Utilização de endpoints 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 final público para recommendation-service, mas podemos mostrar as 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 a funcionar corretamente, podem haver duas razões: primeiro, ao usar test-endpoint a URL base foi alterada de / para /<APP-NAME>/<DEPLOYMENT-NAME>, ou, segundo, a aplicação web está a usar caminhos absolutos para recursos estáticos. Para fazê-lo funcionar no test-endpoint, talvez seja necessário editar manualmente os arquivos front-end <base>.