Адрес фактического проекта электронной коммерции SpringBoot (20k+star):GitHub.com/macro-positive/…
Резюме
Hystrix Dashboard — это компонент панели мониторинга для просмотра выполнения экземпляров Hystrix в Spring Cloud. Он поддерживает просмотр одного экземпляра и просмотр экземпляров кластера. В этой статье подробно рассказывается об его использовании.
Введение
Hystrix предоставляет панель мониторинга Hystrix для мониторинга выполнения метода HystrixCommand в режиме реального времени. Hystrix Dashboard может эффективно отражать работу каждого экземпляра Hystrix, помогая нам быстро находить проблемы в системе и принимать соответствующие меры.
Мониторинг отдельных экземпляров Hystrix
Давайте сначала поймем, как он используется путем мониторинга одного экземпляра Hystrix с помощью приборной панели Hystrix.
Создайте модуль hystrix-dashboard
Используется для мониторинга выполнения экземпляра hystrix.
- Добавьте связанные зависимости в pom.xml:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
- Настройте в application.yml:
server:
port: 8501
spring:
application:
name: hystrix-dashboard
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:8001/eureka/
- Добавьте @EnableHystrixDashboard в класс запуска, чтобы включить мониторинг:
@EnableHystrixDashboard
@EnableDiscoveryClient
@SpringBootApplication
public class HystrixDashboardApplication {
public static void main(String[] args) {
SpringApplication.run(HystrixDashboardApplication.class, args);
}
}
Запустить сопутствующие услуги
На этот раз нам нужно начать следующие услуги: Eureka-Server, User-Service, Hystrix-Service, Hystrix-Dashboard, после запуска реестра отображается ниже.
Демонстрация мониторинга экземпляров Hystrix
- Посетите панель управления Hystrix:http://localhost:8501/hystrix
- После заполнения информации, нажмите кнопку монитора.На что нам нужно обратить внимание, так это то, что, поскольку мы не поддерживаем https локально, наш адрес необходимо заполнить http, иначе информация мониторинга не будет получена;
- Также стоит отметить, что отслеживаемый сервис hystrix-service должен открыть конечную точку hystrix.stream актуатора.Информация о конфигурации выглядит следующим образом:
management:
endpoints:
web:
exposure:
include: 'hystrix.stream' #暴露hystrix监控端点
- Вызовите интерфейс hystrix-service несколько раз:http://localhost:8401/user/testCommand/1
- Можно обнаружить, что свойства commandKey и threadPoolKey, которые мы добавили в @HystrixCommand, отображались выше, и 7 вызовов были успешными.
Интерпретация диаграммы приборной панели Hystrix
Диаграмма интерпретируется следующим образом. Следует отметить, что маленький шарик представляет состояние работоспособности и трафик экземпляра. Чем более заметен цвет, тем менее исправен экземпляр. Чем больше шарик, тем выше трафик экземпляра. . Кривая представляет изменение трафика экземпляра Hystrix в реальном времени.
Мониторинг экземпляров кластера Hystrix
Здесь мы используем Turbine для агрегирования информации мониторинга службы hystrix-service, а затем наша служба hystrix-dashboard может получить агрегированную информацию мониторинга от Turbine и отобразить ее нам.
Создать модуль обслуживания турбины
Используется для агрегирования информации мониторинга hystrix-service.
- Добавьте связанные зависимости в pom.xml:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-turbine</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
- Настроен в Application.yml, в основном добавляет конфигурацию турбины:
server:
port: 8601
spring:
application:
name: turbine-service
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:8001/eureka/
turbine:
app-config: hystrix-service #指定需要收集信息的服务名称
cluster-name-expression: new String('default') #指定服务所属集群
combine-host-port: true #以主机名和端口号来区分服务
- Добавьте @EnableTurbine в класс запуска, чтобы включить функции, связанные с турбиной:
@EnableTurbine
@EnableDiscoveryClient
@SpringBootApplication
public class TurbineServiceApplication {
public static void main(String[] args) {
SpringApplication.run(TurbineServiceApplication.class, args);
}
}
Запустить сопутствующие услуги
Используйте конфигурацию application-replica1.yml для запуска службы hystrix-service и запуска службы турбины.В это время реестр отображается следующим образом.
Демонстрация мониторинга кластера Hystrix
-
Посетите панель управления Hystrix:http://localhost:8501/hystrix
-
Чтобы добавить адрес мониторинга кластера, следует отметить, что нам нужно добавить адрес конечной точки мониторинга турбины-сервиса:
- Вызовите интерфейс hystrix-service несколько раз:http://localhost:8401/user/testCommand/1а такжеhttp://localhost:8402/user/testCommand/1
- Вы можете видеть, что количество наших экземпляров Hystrix стало равным двум.
используемые модули
springcloud-learning
├── eureka-server -- eureka注册中心
├── user-service -- 提供User对象CRUD接口的服务
├── hystrix-service -- hystrix服务调用测试服务
├── turbine-service -- 聚合收集hystrix实例监控信息的服务
└── hystrix-dashboard -- 展示hystrix实例监控信息的仪表盘
Адрес исходного кода проекта
публика
проект торгового центраПолный набор учебных пособий сериализуется,Обратите внимание на публичный аккаунтПолучите это прямо сейчас.