前文
SpringCloud —— 服务注册进 Eureka 集群
SpringCloud —— SpringCloud Consul 实现服务注册中心
文章目录
服务监控 HystrixDashboard
概述
除了隔离依赖服务的调用外,Hystrix 还提供了 准实时的调用监控(Hystrix Dashboard),Hystrix 会持续地记录所有通过 Hystrix 发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。Netflix 通过 hystrix-metrics-event-stream 项目实现了对以上指标的监控。SpringCloud 也提供了 Hystrix Dashboard 的整合,对监控内容转化成可视化界面
新建 Module
添加依赖
<dependencies>
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
编写 application.yml 文件
server:
port: 9001
编写启动类
package com.java.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
/**
* @author Woo_home
* @create 2020/3/28 21:01
*/
@SpringBootApplication
@EnableHystrixDashboard
public class DashBoardHystrix {
public static void main(String[] args){
SpringApplication.run(DashBoardHystrix.class,args);
}
}
所有 Provider 微服务提供类都需要监控依赖配置
需要监控的服务必须要有以下的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
启动服务
测试访问
访问 http://localhost:9001/hystrix 即可进入以下界面
9001 监控 8001
启动三个微服务,7001 是 EurekaServer 端,8001 是提供者服务,9001 是 Dashboard 监控
测试访问
访问 EurekaServer OK
先测试 8001 能正常访问
错误的也能正常访问
监控服务
上述测试 OK 之后,在 Hystrix Dashboard 界面输入以下内容,点击监控按钮
未进行测试 8001 前的 HystrixDashboard,circuit 默认是开启的状态
访问正确的 http://localhost:8001/payment/circuit/1 后的 HystrixDashboard 监控信息,circuit 是关闭的状态
访问错误的 http://localhost:8001/payment/circuit/-1 后的 HystrixDashboard 监控信息,circuit 是开启的状态
实心圆:共有两种含义,它通过颜色的变化代表了实例的健康程度
它的健康度从 绿色 < 黄色 < 橙色 < 红色递减
该实心圆除了颜色的变化之外,它的大小也会根据实例的请求流量发生变化,流量越大该实心圆就越大。所以通过该实心圆的展示,就可以在大量的实例中快速发现 故障实例和高压力实例
曲线:用来记录 2 分钟内流量的相对变化,可以通过它来观察到流量的上升和下降趋势
完整代码已上传至码云,感兴趣的朋友可以下载测试下 代码地址