SpringCloud 微服务架构(16)- hystrix:通过Actuator 获取 hystrix的监控数据

1 hystrix 的超时时间

在之前的案例中,请求在超过1秒后都会返回错误信息,这是因为Hystix的默认超时时长为1,我们可以通过配置修改这个值:
在这里插入图片描述

2 Hystrix 监控平台

当请求失败,被拒绝,超时的时候,都会进入到降级方法中。但进入降级方法并不意味着断路器已经被打开。那么如何才能了解断路器中的状态呢?


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


在这里插入图片描述

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>

在这里插入图片描述

  • 暴露所有的 actuator 监控的端点
    在这里插入图片描述

  • 运行程序
    在这里插入图片描述

http://localhost:9003/actuator/hystrix.stream
在这里插入图片描述

  • 触发熔断
  • http://localhost:9003/order/buy/1
    在这里插入图片描述
    在这里插入图片描述

3 通过hystrix的dashboard监控hystrix数据流

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 多次重新访问 http://localhost:9003/order/buy/1
    在这里插入图片描述
    在这里插入图片描述

4 使用turbine聚合所有的hytrix的监控数据

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


  • 新建子模块
    在这里插入图片描述
    在这里插入图片描述
 <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-turbine</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
        </dependency>
    </dependencies>

4.1 配置文件

在这里插入图片描述

server:
  port: 8031

spring:
  application:
    name: hystrix-turbine

eureka:
  client:
    service-url:
      defaultZone: http://localhost:9000/eureka/
  instance:
    prefer-ip-address: true

turbine:
  # 要监控的微服务列表,多个用,分隔
  appConfig: service-order
  clusterNameExpression: "'default'"

4.2 启动类

package com.tzb;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
import org.springframework.cloud.netflix.turbine.EnableTurbine;

/**
 * @Description TODO
 * @Author tzb
 * @Date 2020/10/25 11:24
 * @Version 1.0
 **/
@SpringBootApplication
// turbin配置
@EnableTurbine
@EnableHystrixDashboard
public class TurbinApplcation {

    public static void main(String[] args) {
        SpringApplication.run(TurbinApplcation.class, args);
    }
}

在这里插入图片描述


  • http://localhost:9003/hystrix
  • http://localhost:8031/turbine.stream
  • 多次刷新 http://localhost:9003/order/buy/1
    在这里插入图片描述
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页