자습서: Azure Spring Apps와 함께 회로 차단기 대시보드 사용
Warning
Hystrix 개발은 더 이상 활성 상태가 아니며 현재 유지 관리 모드에 있습니다.
참고 항목
기본, 표준 및 엔터프라이즈 계획은 2025년 3월 중순부터 사용되지 않으며 3년의 은퇴 기간이 있습니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 사용 중지 공지 사항을 참조하세요.
표준 소비 및 전용 계획은 2024년 9월 30일부터 사용되지 않으며 6개월 후에 완전히 종료됩니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 표준 사용량 및 전용 계획을 Azure Container Apps로 마이그레이션을 참조 하세요.
이 문서는 Java ❎ C에✅ 적용됩니다.#
이 문서는 기본/표준 ✅ 엔터프라이즈에✅ 적용됩니다.
이 문서에서는 Azure Spring Apps에서 Netflix Turbine과 Netflix Hystrix를 사용하는 방법을 설명합니다. Spring Cloud Netflix Turbine은 Hystrix 대시보드를 사용하여 단일 뷰에서 스트림을 모니터링할 수 있도록 여러 Netflix Hystrix 메트릭 스트림을 집계하는 데 많이 사용됩니다.
참고 항목
Netflix Hystrix는 기존의 많은 Spring 앱에서 널리 사용되고 있지만 실제 개발에는 더 이상 사용되지 않습니다. 새 프로젝트를 개발 중일 경우 resilience4j와 같은 Spring Cloud 회로 차단기 구현을 대신 사용해야 합니다. 이 자습서에 표시된 Turbine과는 달리, 새 Spring Cloud 회로 차단기 프레임워크는 메트릭 데이터 파이프라인의 모든 구현을 마이크로미터로 통합합니다. Azure Spring Apps에서도 지원됩니다. 자세한 내용은 Micrometer로 Spring Cloud Resilience4J 회로 차단기 메트릭 수집(미리 보기)을 참조하세요.
샘플 애플리케이션 준비
샘플은 이 리포지토리에서 포크됩니다.
개발 환경에 샘플 리포지토리를 복제합니다.
git clone https://github.com/Azure-Samples/azure-spring-apps-samples.git
cd azure-spring-apps-samples/hystrix-turbine-sample
이 자습서에 있는 세 가지 애플리케이션을 빌드합니다.
- user-service: /personalized/{id}라는 단일 엔드포인트가 있는 간단한 REST 서비스
- recommendation-service: user-service가 호출할 /recommendations라는 단일 엔드포인트가 있는 간단한 REST 서비스
- hystrix-turbine: Hystrix 스트림을 표시하는 Hystrix 대시보드 서비스와 다른 서비스에서 Hystrix 스트림을 집계하는 Turbine 서비스
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
Azure Spring Apps 인스턴스 프로비저닝
빠른 시작: Azure Spring Apps에 첫 번째 애플리케이션 배포의 Azure Spring Apps 인스턴스 프로비전 섹션에 명시된 단계를 수행합니다.
Azure Spring Apps에 애플리케이션 배포
이러한 앱은 Config Server를 사용하지 않으므로 Azure Spring Apps용 Config Server를 설정할 필요가 없습니다. 다음과 같이 만들고 배포합니다.
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
앱 인증
모든 앱이 실행되고 검색 가능하면 브라우저에서 https://<Azure-Spring-Apps-instance-name>-user-service.azuremicroservices.io/personalized/1
경로로 user-service
에 액세스합니다. 사용자 서비스가 recommendation-service
에 액세스할 수 있는 경우 다음 출력을 가져와야 합니다. 웹 페이지가 작동하지 않는 경우 여러 번 새로 고칩니다.
[{"name":"Product1","description":"Description1","detailsLink":"link1"},{"name":"Product2","description":"Description2","detailsLink":"link3"},{"name":"Product3","description":"Description3","detailsLink":"link3"}]
Hystrix 대시보드 및 메트릭 스트림에 액세스
퍼블릭 엔드포인트 또는 프라이빗 테스트 엔드포인트를 사용하여 인증합니다.
퍼블릭 엔드포인트 사용
브라우저에서 https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/hystrix
경로를 사용하여 hystrix-turbine에 액세스합니다. 다음 그림은 이 앱에서 실행되는 Hystrix 대시보드를 보여 줍니다.
텍스트 상자에 Turbine 스트림 URL https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/turbine.stream?cluster=default
를 복사하고 스트림 모니터링을 선택합니다. 이 작업을 통해 대시보드가 표시됩니다. 뷰어에 아무것도 표시되지 않는 경우 user-service
엔드포인트를 눌러 스트림을 생성합니다.
참고 항목
프로덕션 환경에서는 Hystrix 대시보드 및 메트릭 스트림이 인터넷에 노출되지 않아야 합니다.
프라이빗 테스트 엔드포인트 사용
test-endpoint
에서 Hystrix 메트릭 스트림에 액세스할 수도 있습니다. 백 엔드 서비스이므로 recommendation-service
에 대한 퍼블릭 엔드포인트가 할당되지 않았지만 https://primary:<KEY>@<SERVICE-NAME>.test.azuremicroservices.io/recommendation-service/default/actuator/hystrix.stream
에서 테스트 엔드포인트를 사용하여 메트릭을 표시할 수 있습니다.
웹앱인 Hystrix 대시보드는 test-endpoint
에서 작동해야 합니다. 제대로 작동하지 않을 경우 두 가지 이유가 있을 수 있습니다. 첫 번째는 test-endpoint
를 사용해서 기본 URL이 /
에서 /<APP-NAME>/<DEPLOYMENT-NAME>
으로 변경된 경우이고, 두 번째는 웹앱이 정적 리소스의 절대 경로를 사용하는 경우입니다. test-endpoint
에서 작동하도록 프런트 엔드 파일에서 <base>
를 수동으로 편집해야 할 수 있습니다.