当前位置: 首页 > news >正文

SpringCloud系列(35)--使用HystrixDashboard进行服务监控

前言:在上一节中我们使用了Hystrix进行服务熔断处理,至此关于Hystrix的使用到此为止,本节内容关注的是如何使用HystrixDashboard对调用进行监控。

1、HystrixDashboard概述

Hystrix提供的准实时的调用监控(HystrixDashboard),Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。Netflix通过hystrix-metrics-event-stream项目实现了对以上指标的监控。SpringCloud也提供了HystrixDashboard的整合,对监控内容转化成可视化界面。
 

2、创建一个监控程序模块,命名为cloud-consumer-hystrix-dashboard9001
(1)在父工程下新建模块

 (2)选择模块的项目类型为Maven并选择模块要使用的JDK版本

(3)填写子模块的名称,然后点完成即可完成创建

效果图:

3、修改cloud-consumer-hystrix-dashboard9001子模块的pom.xml文件,然后reolad一下,下载依赖

例:

<?xml version="1.0" encoding="UTF-8"?>
<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"><parent><artifactId>springcloud01</artifactId><groupId>com.ken.springcloud</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>cloud-consumer-hystrix-dashboard9001</artifactId><dependencies><!--hystrix dashboard--><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><!--lombok插件--><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>
</project>

4、为cloud-consumer-hystrix-dashboard9001子模块添加名为application的yml配置文件(注:yml是官方推荐的配置文件格式,最好使用yml文件而不是properties文件)

效果图:

5、修改application.yml文件配置
server:port: 9001

6、为cloud-consumer-hystrix-dashboard9001子模块新建一个主启动类,类名输入com.ken.springcloud.HystrixDashboardMain9001,然后创建即可

效果图:

7、编写HystrixDashboardMain9001启动类
package com.ken.springcloud;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;@SpringBootApplication
@EnableHystrixDashboard
public class HystrixDashboardMain9001 {public static void main(String[] args) {SpringApplication.run(HystrixDashboardMain9001.class, args);}}

8、启动cloud-consumer-hystrix-dashboard9001项目

效果图:

9、在浏览器地址栏里输入http://localhost:9001/hystrix然后回车进入Hystrix Dashboard监控页面

效果图:

10、监控指定的服务,我这里选择监控cloud-provider-hystrix-payment8001服务
(1)修改cloud-provider-hystrix-payment8001服务的主启动类
package com.ken.springcloud;import com.netflix.hystrix.contrib.metrics.eventstream.HystrixMetricsStreamServlet;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.Bean;@SpringBootApplication
//使用Feign,激活并开启
@EnableEurekaClient
//开启断路器功能
@EnableCircuitBreaker
public class PaymentHystrixMain8001 {public static void main(String[] args) {SpringApplication.run(PaymentHystrixMain8001.class, args);}//此配置是为了服务监控而配置,与服务容错本身无关,springcLoud升级后的坑,ServletRegistrationBean因为springboot的默认路径不是"/hystrix.stream" ,只要在自己的项目里配置上下面的servlet就可以了@Beanpublic ServletRegistrationBean getServlet() {HystrixMetricsStreamServlet hystrixMetricsStreamServlet = new HystrixMetricsStreamServlet();ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(hystrixMetricsStreamServlet);servletRegistrationBean.setLoadOnStartup(1);servletRegistrationBean.addUrlMappings("/hystrix.stream");servletRegistrationBean.setName("HystrixMetricsStreamServlet");return servletRegistrationBean;}}
(2)先启动eureka-server7001然后再启动cloud-provider-hystrix-payment8001

效果图:

(3)再次来到Hystrix Dashboard监控页面,在对应的地方填写上相应的信息
[1]填写Turbine访问地址http://localhost:8001/hystrix.stream
[2]Delay填写2000
[3]Title填写Test

例:

(4)点击按钮开始监控cloud-provider-hystrix-payment8001服务

效果图:

注:这里一开始是空白的,开始没有请求的话会一直显示Loading,不用担心,不是程序问题

11、 查看请求正常的情况下断路器的状态

在浏览器的地址栏里连续多次的输入http://localhost:8001/payment/circuit/1,调用接口后返回到HystrixDashboard的页面监控cloud-provider-hystrix-payment8001服务的状态

例:

可以看出在请求正常的情况下断路器的状态是CLOSED

12、根据图形化界面判断服务、请求的状态
(1)根据右边对应状态的7种颜色可以在左边看出对应状态下的请求次数

每个状态都对应着一个颜色,可以通过颜色在界面左边的那对数字那里看出对应请求状态的出现次数

(2)根据左边的实心圆判断实例的健康程度、请求数量

实心圆共有两种含义,其一是通过颜色的变化代表了实例的健康程度,它的健康度从绿色<黄色<橙色<红色递减;其二是实心圆的大小也会根据实例的请求流量发生变化,流量越大该实心圆就越大,所以通过观察实心圆的变化,就可以在大量的实例中快速的发现故障实例和高压力实例。

绿色:

红色:

(3)根据左边的曲线判断流量的情况

曲线记录了2分钟内流量的相对变化,可以通过它来观察到流量的上升和下降趋势。

(4)图形化化页面汇总说明

相关文章:

  • 网站备案要如何取消搜索引擎营销的基本方法
  • 佛山家具网站建设公司抖音优化
  • 北京市建设委员会和城乡建设网站百度网盘app官网
  • 企业开发流程网站优化排名方案
  • 网站建设培训哪个好百度图片
  • 海口网站seo打开app下载
  • 《AI大模型应用技术开发工程师》学习总结
  • 从0开始学习R语言--Day31--概率图模型
  • jsoncpp-src-0.5.0编译
  • 多模态大模型(从0到1)
  • 抖音视频怎么去掉抖音号水印保存
  • 2023年全国青少年信息素养大赛Python 复赛真题——玩石头游戏
  • Vue 英雄列表搜索与排序功能实现
  • 各计算机语言在机器人领域的应用
  • 《汇编语言:基于X86处理器》第4章 数据传送、寻址和算术运算(2)
  • LangChain4j之会话功能AiServices工具类的使用(系列二)
  • python基础(字符串-复习)
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | MovieApp(电影卡片组件)
  • 2025湖北省职业院校技能大赛信息安全管理与评估样题
  • Springboot——整合netty并进行websocket通信
  • 2025.6.16-实习
  • 《仿盒马》app开发技术分享-- 兑换列表展示(68)
  • SQL Server从入门到项目实践(超值版)读书笔记 18
  • 【Python-Day 29】万物皆对象:详解 Python 类的定义、实例化与 `__init__` 方法
  • 轨迹降噪API及算法
  • 【Python练习】011. 定义一个字符串变量并打印其长度