• Hystrix的监控平台


    Hystrix的监控平台#

    除了实现容错功能,Hystrix还提供了近乎实时的监控,HystrixCommand和HystrixObservableCommand在执行时,会生成执行结果和运行指标。比如每秒的请求数量,成功数量等。这些状态会暴露在Actuator提供的/health端点中。只需为项目添加 spring-boot-actuator 依赖,重启项目,访问http://localhost:9001/actuator/hystrix.stream ,即可看到实时的监控数据。

    可能会出现端口访问不到的情况:

    此时需要暴露端口:

    1. management:
    2. endpoints:
    3. web:
    4. exposure:
    5. include: '*'

    搭建Hystrix DashBoard监控#

    刚刚讨论了Hystrix的监控,但访问/hystrix.stream接口获取的都是已文字形式展示的信息。很难通过文字直观的展示系统的运行状态,所以Hystrix官方还提供了基于图形化的DashBoard(仪表板)监控平台。Hystrix仪表板可以显示每个断路器(被@HystrixCommand注解的方法)的状态。

    (1)导入依赖#

    1. org.springframework.boot
    2. spring-boot-starter-actuator
    3. org.springframework.cloud
    4. spring-cloud-starter-netflix-hystrix
    5. org.springframework.cloud
    6. spring-cloud-starter-netflix-hystrix-dashboard

    (2)添加EnableHystrixDashboard 注解#

    在启动类使用@EnableHystrixDashboard注解激活仪表盘项目

    1. @EnableHystrixDashboard
    2. public class OrderApplication {
    3. public static void main(String[] args) {
    4. SpringApplication.run(OrderApplication.class, args);
    5. }
    6. }

    (3)访问测试 
     


    首页中并没有具体的监控信息,从页面上的内容可以知道,Hystrix Dashboard共支持三种不同的监控方式:

        默认的集群监控: http://turbine-hostname:port/turbine.stream
        指定的集群监控: http://turbine-hostname:port/turbine.stream?cluster=[clusterName]
        单体应用的监控: http://hystrix-app:port/actuator/hystrix.stream

    页面上面的几个参数局域

       最上面的输入框: 输入上面所说的三种监控方式的地址,用于访问具体的监控信息页面。
        Delay: 该参数用来控制服务器上轮询监控信息的延迟时间,默认2000毫秒。
        Title: 该参数对应头部标题Hystrix Stream之后的内容,默认会使用具体监控实例的Url。
     

    输入监控断点展示监控的详细数据#

     

    断路器聚合监控Turbine#

    在微服务架构体系中,每个服务都需要配置Hystrix DashBoard监控。如果每次只能查看单个实例的监控数据,就需要不断切换监控地址,这显然很不方便。要想看这个系统的Hystrix Dashboard数据就需要用到Hystrix Turbine。Turbine是一个聚合Hystrix 监控数据的工具,他可以将所有相关微服务的Hystrix 监控数据聚合到一起,方便使用。引入Turbine后,整个监控系统架构如下:

    (1) 搭建TurbineServer#

    创建工程 shop_hystrix_turbine 引入相关坐标

    1. org.springframework.cloud
    2. spring-cloud-starter-netflix-turbine
    3. org.springframework.cloud
    4. spring-cloud-starter-netflix-hystrix
    5. org.springframework.cloud
    6. spring-cloud-starter-netflix-hystrix-dashboard

    (2) 配置多个微服务的hystrix监控#

    在application.yml的配置文件中开启turbine并进行相关配置 

    1. server:
    2. port: 8031
    3. spring:
    4. application:
    5. name: microservice-hystrix-turbine
    6. eureka:
    7. client:
    8. service-url:
    9. defaultZone: http://localhost:8761/eureka/
    10. instance:
    11. prefer-ip-address: true
    12. turbine:
    13. # 要监控的微服务列表,多个用,分隔
    14. appConfig: shop-service-order
    15. clusterNameExpression: "'default'"

      eureka相关配置 : 指定注册中心地址

      turbine相关配置:指定需要监控的微服务列表

    turbine会自动的从注册中心中获取需要监控的微服务,并聚合所有微服务中的 /hystrix.stream 数据 

    (3)配置启动类#

    1. @SpringBootApplication
    2. @EnableTurbine
    3. @EnableHystrixDashboard
    4. public class TurbineServerApplication {
    5. public static void main(String[] args) {
    6. SpringApplication.run(TurbineServerApplication.class, args);
    7. }
    8. }

    作为一个独立的监控项目,需要配置启动类,开启HystrixDashboard监控平台,并激活Turbine

    (4) 测试#

    浏览器访问 http://localhost:8031/hystrix 展示HystrixDashboard。并在url位置输入 http://localhost:8031/turbine.stream,动态根据turbine.stream数据展示多个微服务的监控数据

  • 相关阅读:
    ESP8266-Arduino编程实例-SHT31温度湿度传感器驱动
    RC4加密算法详解
    R语言学习笔记
    完全彻底的卸载MySQL5.7.35
    Vue----属性侦听器
    整数拆分(动态规划)
    在 Simscape Electrical 中对两区 MVDC 电动船的建模和仿真(Simulink实现)
    Python与CAD系列基础篇(九)图层相关操作
    探索macOS上的最佳MySQL客户端工具
    中高级前端工程师都需要熟悉的技能--前端缓存
  • 原文地址:https://blog.csdn.net/WXF_Sir/article/details/126381318