《 Hystrix-Dashboard,实现微服务监控 》
前言
在上一篇文章中,主要完成了 《 Hystrix断路器,实现服务的熔断与降级 》,本篇将带领读者使用 Hystrix-Dashboard 实现服务调用情况的实时监控,并学会如何看懂监控仪表盘,虽然很简单,但是还是提及一下,本篇博客主要主要涉及模块,包括:
- 新增 hystrix-dashboard 服务调用情况监控服务模块,服务名称为 “ microservice-hystrix-dashboard-9001 ”;
- 修改三台服务提供者服务器,项目名为 “ microservice-provider-8001 ~ 8003”;
Hystrix-Dashboard,实现微服务监控
1、新增 Hystrix-Dashboard 服务监控项目,服务名称为 “ microservice-hystrix-dashboard-9001 ” ,
POM 修改,新增对 Hystrix 和 Hystrix-Dashboard 的支持,完整内容如下:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.huazai.springcloud</groupId>
<artifactId>microservice</artifactId>
<version>${project.version}</version>
</parent>
<artifactId>microservice-hystrix-dashboard-9001</artifactId>
<description>Hystrix-实时的服务调用监控(Hystrix Dashboard)</description>
<dependencies>
<!-- 引入自己定义的api通用包 -->
<dependency>
<groupId>com.huazai.springcloud</groupId>
<artifactId>microservice-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Ribbon相关 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!-- feign相关 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
<!-- hystrix和 hystrix-dashboard相关 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
</dependency>
<!-- 修改后立即生效,热部署 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>
</project>
YML 配置文件新增,这儿只需要配置监控服务器的端口即可,完整内容如下:
server:
port: 9001
修改主启动类,新增注解 “ @EnableHystrixDashboard ” ,以开启对服务调用情况的监控,完整内容如下:
package com.huazai.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
/**
*
* @author HuaZai
* @contact [email protected]
* <ul>
* @description
* <li>微服务监控服务器
* </ul>
* @className MicroserviceHystrixDashboardApp_9001
* @package com.huazai.springcloud
* @createdTime 2018年05月26日 下午4:42:43
*
* @version V1.0.0
*/
@SpringBootApplication
@EnableHystrixDashboard // 开启服务调用监控
public class MicroserviceHystrixDashboardApp_9001
{
public static void main(String[] args)
{
SpringApplication.run(MicroserviceHystrixDashboardApp_9001.class, args);
}
}
在三台微服务的 POM 配置文件中,新增执行器 “ actuator ” ,实现对服务监控的支持,新增内容如下:
<!-- actuator与注册微服务信息完善 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
启动服务调用情况监控端服务器 “ microservice-hystrix-dashboard-9001 ” ,并访问监控端服务器地址,如下图:
再启动 Eureka 集群,最后启动基于 Hystrix 的服务提供者服务模块 “ microservice-hystrix-8001 ”,并访问该提供者服务器地址获取数据,在提供者服务器地址后加 “ hystrix.stream ” 出现,ping 的情况,则说明该服务已经在监控中了,只有有消费者服务器来调用该服务器时,器调用的动作过程将被记录,如下图:
关联到监控仪表盘服务器,并实时展现出来
1)、首先需要绑定监控流地址,如下图:
2)、模拟频繁调用服务提供者模块,只需持续的刷新请求即可,监控结果如下图:
监控结果看不懂怎么办?放心,博主已经精心准备好了,请往下看:
除了主要观察 “ 7色 ” 数据的变化外,还需要注意观察 “ 1圆 ” 的大小变化/颜色变化 和 “ 一线 ” 的起伏趋势变化:
关于1线:
用来记录 2 分钟内的流量的相对变化,可以通过该线的起伏趋势来判断当前系统服务的被调用情况,并且作出适当的服务调整,以给用户带来良好的体验效果或者作为系统内部的预警提醒。
关于1圆:
共包含两层含义。第一:通过它的颜色变化情况来判断当前服务的健康状况,健康程度又高到底排序:绿色 》 黄色 》 橙色 》 红色(当圆变为红色时,就要技术工作人员警惕咯!!!)。第二:通过圆的大小变化来判断该服务器的调用情况,流量越大该实心圆就越大。所以可以通过该实心圆的大小情况,在大量的服务实例中快速的定位和发现故障实例和高压力实例的那个类的那个接口,这样就可以针对性的提供解决办法或者加服务器等操作。
GitLab 源码地址:
项目源码地址(zip格式的工程包):
好了,关于 Spring Cloud 进阶--Rest微服务加入Hystrix-Dashboard,实现微服务监控 就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。
作 者: | 华 仔 |
联系作者: | [email protected] |
来 源: | CSDN (Chinese Software Developer Network) |
原 文: | https://blog.csdn.net/Hello_World_QWP/article/details/88087463 |
版权声明: | 本文为博主原创文章,请在转载时务必注明博文出处! |