Учебник. Использование панели мониторинга размыкателя цепи в Azure Spring Apps

Предупреждение

Hystrix больше не находится в активной разработке и в настоящее время находится в режиме обслуживания.

Примечание.

Azure Spring Apps — это новое название службы Azure Spring Cloud. Старое название будет еще некоторое время встречаться в наших материалах, пока мы не обновим ресурсы, такие как снимки экрана, видео и схемы.

Эта статья применима к: ✔️ 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, работающая в этом приложении.

Снимок экрана: панель мониторинга Hystrix с подробными сведениями о задержке и заголовке.

Скопируйте URL-адрес потока Turbine https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/turbine.stream?cluster=default в текстовое поле и нажмите Monitor Stream (Мониторинг потока). Это действие отображает панель мониторинга. Если в средстве просмотра ничего не отображается, нажмите конечные точки user-service для создания потоков.

Снимок экрана: страница потока Hystrix с подробными сведениями о пулах каналов и потоков.

Примечание.

В рабочей среде панель мониторинга Hystrix и поток метрик не должны быть доступны в Интернете.

Использование частных конечных точек теста

Потоки метрик Hystrix также доступны из test-endpoint. В качестве серверной службы мы не назначали общедоступную конечную точку для recommendation-service, но мы можем отобразить ее метрики с помощью test-endpoint в https://primary:<KEY>@<SERVICE-NAME>.test.azuremicroservices.io/recommendation-service/default/actuator/hystrix.stream.

Снимок экрана: страница потоковой передачи тестовой конечной точки Hystrix.

В качестве веб-приложения должна работать панель мониторинга Hystrix в test-endpoint. Если он не работает должным образом, может возникнуть две причины: во-первых, используя test-endpoint измененный базовый URL-адрес с //<APP-NAME>/<DEPLOYMENT-NAME>или, во-вторых, веб-приложение использует абсолютный путь для статического ресурса. Чтобы панель мониторинга работала, в test-endpoint, возможно, потребуется вручную отредактировать <base> в файлах внешнего интерфейса.

Следующие шаги