scservers(九)监控管理-断路器管理

前言

作为一个能上生产的系统,我觉得需要两个指标

  • 性能稳定
  • 安全运行

    前者考量设计编码能力,后者更加侧重后续监控管理,这往往被人忽略却异常重要。性能稳定需要性能优化,这个下次再讲,监控管理,我们需要对机器,应用,日志等各方面进行。这是框架应用运行良好生态系统。

    springcloud 在这方面做得很好,如springcloud admin,日志跟踪管理,甚至断路器监控管理。我们首先先补上断路器的监控管理,在前面讲熔断的时候就已经讲过部分,现在把它补全。

    ## Hystrix Dashboard

    在熔断篇已经有过,当时直接讲面板集成到了应用中,这里再说下其使用并讲面板应用独立出来。
  • 配置

    dashboard 为ui,不然不需要
    xml
    <dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-actuator</artifactId>

    </dependency>

    <dependency>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>

    </dependency>

    添加注解
@EnableCircuitBreaker
@EnableHystrixDashboard

手动开启

feign: 
  hystrix:
    enabled: true
    
management:
  endpoints:
    web:
      exposure:
        include: hystrix.stream
  • 使用

    通过/hystrix访问dashboard界面,在这里可以通过输入各个应用的hystrix.stream地址来访问监控各应用的熔断情况。

Turbine

通过hystrix dashboard 可以监控各应用熔断情况,而turbine补充了对集群进行监控。我们通过mq 收集数据流的方式来继承。

  • 配置

    依赖
 <!--集群监控-->
        <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-turbine-stream</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
注解
@EnableTurbineStream

属性

turbine:
  stream:
    port: 8030
  • 服务调用者设置

    添加依赖
    xml
    <dependency>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-netflix-hystrix-stream</artifactId>

    </dependency>

    <dependency>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-starter-stream-rabbit</artifactId>

    </dependency>