Учебник. Использование панели мониторинга размыкателя цепи в Azure Spring Apps
Предупреждение
Hystrix больше не находится в активной разработке и в настоящее время находится в режиме обслуживания.
Примечание.
Планы "Базовый", "Стандартный" и "Корпоративный" будут устарели начиная с середины марта 2025 г. с 3-летнего периода выхода на пенсию. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.
Стандартный план потребления и выделенного плана будет устарел с 30 сентября 2024 г. с полным завершением работы после шести месяцев. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в статье "Миграция потребления Azure Spring Apps Standard" и выделенного плана в приложения контейнеров Azure.
Эта статья относится к:✅ Java ❎ C#
Эта статья относится к:✅ Basic/Standard ✅ Enterprise
В этой статье показано, как использовать Netflix Turbine и Netflix Hystrix в Azure Spring Apps. Spring Cloud Netflix Turbine широко используется для агрегирования нескольких потоков метрик Netflix Hystrix, чтобы потоки можно было отслеживать в одном представлении с помощью панели мониторинга Hystrix .
Примечание.
Netflix Hystrix широко используется во многих существующих приложениях Spring, но он больше не в активной разработке. Если вы разрабатываете новый проект, то вместо этого следует использовать реализации Спринг-Облака, такие как устойчивость4j . В отличие от Turbine, показанного в этом учебнике, новая платформа размыкателя цепи Spring Cloud объединяет все реализации своего конвейера данных метрик в Micrometer, который также поддерживается средой Azure Spring Apps. Дополнительные сведения см. в разделе "Сбор метрик отказоустойчивости Spring Cloud4J" с помощью Micrometer (предварительная версия).
Подготовка примеров приложений
Пример разветвлен из этого репозитория.
Клонируйте пример репозитория в среду разработки:
git clone https://github.com/Azure-Samples/azure-spring-apps-samples.git
cd azure-spring-apps-samples/hystrix-turbine-sample
Создайте три приложения, которые находятся в этом руководстве:
- пользовательская служба: простая служба REST, которая имеет одну конечную точку /персонализированных/{id}
- рекомендация-служба: простая служба REST, которая имеет одну конечную точку /recommendations, которая вызывается пользовательской службой.
- hystrix-turbine: служба панели мониторинга Hystrix для отображения потоков Hystrix и службы турбины, агрегируя поток метрик Hystrix из других служб.
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
Эти приложения не используют сервер конфигурации, поэтому не нужно настраивать сервер конфигурации для Azure Spring Apps. Создайте и разверните приложения следующим образом:
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
Проверка приложений
Убедившись, что запущенные приложения обнаруживаются, откройте в браузере страницу user-service
, перейдя по адресу 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 и потоку метрик
Выполните проверку, используя общедоступные конечные точки или частные конечные точки теста.
Использование общедоступных конечных точек
Получите доступ к приложению hystrix-turbine с помощью пути https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/hystrix
из браузера. На следующем рисунке показана панель мониторинга Hystrix, работающая в этом приложении.
Скопируйте URL-адрес потока Turbine https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/turbine.stream?cluster=default
в текстовое поле и нажмите Monitor Stream (Мониторинг потока). Это действие отображает панель мониторинга. Если в средстве просмотра ничего не отображается, нажмите конечные точки user-service
для создания потоков.
Примечание.
В рабочей среде панель мониторинга Hystrix и поток метрик не должны быть доступны в Интернете.
Использование частных конечных точек теста
Потоки метрик Hystrix также доступны из test-endpoint
. В качестве серверной службы мы не назначали общедоступную конечную точку для recommendation-service
, но мы можем отобразить ее метрики с помощью test-endpoint в 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>
в файлах внешнего интерфейса.