前言:在上一节中我们使用了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)图形化化页面汇总说明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/86759.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/86759.shtml
英文地址,请注明出处:http://en.pswp.cn/web/86759.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爬虫简单实操2——以贴吧为例爬取“某吧”前10页的网页代码

需求是将贴吧的【某个吧】里面【n页】的网页代码爬取下来&#xff0c;保存至本地 首先我们要思考这个贴吧爬虫的框架&#xff0c;要有方法可以构造url列表&#xff08;就可以一次获取多个url&#xff09;&#xff0c;能请求获取相应&#xff0c;能把html保存到本地。 import …

webpack5 css-loader 配置项中的modules

在 Webpack 的 css-loader 中&#xff0c;modules 选项是一个核心配置&#xff0c;它直接关系到 CSS 的模块化处理方式。下面从概念、原理、使用场景和实践技巧四个方面详细解析&#xff1a; 概念解析&#xff1a;CSS Modules 是什么&#xff1f; CSS Modules 是一种让 CSS 类…

springboot+Vue驾校管理系统

概述 基于springbootVue开发的驾校管理系统。该系统采用主流技术栈开发&#xff0c;功能完善&#xff0c;既包含用户端便捷的操作界面&#xff0c;又具备强大的后台管理功能。 主要内容 一、用户端功能模块 ​​核心功能导航​​&#xff1a; 首页展示驾校推荐信息及最新动态…

#华为鲲鹏#华为计算#鲲鹏开发者计划2025#

#华为鲲鹏#华为计算#鲲鹏开发者计划2025# <新版开发者计划>的内容链接&#xff1a;鲲鹏开发者计划2025-鲲鹏社区 通过学习毕昇编译器整体介绍&#xff0c;以及安装使用流程、新增特性、调优工具的使用及相关指导文件获取&#xff0c;对毕异编译器有了更深的认识。 我刚…

小程序学习笔记:声明式导航的多种玩法

在小程序开发中&#xff0c;页面导航是实现用户流畅交互体验的关键环节。今天&#xff0c;咱们就一起来深入学习小程序里通过声明式导航实现页面跳转、切换 tab 页、后退等功能的技巧&#xff0c;还会附上详细代码示例&#xff0c;让大家轻松掌握&#xff01; 一、什么是页面导…

Linux中《动/静态库原理》

目录 目标文件ELF文件ELF从形成到加载轮廓ELF形成可执行readelf命令ELF可执行文件加载 理解连接与加载静态链接ELF加载与进程地址空间虚拟地址/逻辑地址 重新理解进程虚拟地址空间 动态链接与动态库加载进程如何看到动态库进程间如何共享库的动态链接动态链接到底是如何工作的&…

Android大图加载优化:BitmapRegionDecoder深度解析与实战

在移动端开发中&#xff0c;超大图片加载一直是性能优化的难点。本文将深入剖析BitmapRegionDecoder原理&#xff0c;提供完整Kotlin实现方案&#xff0c;并分享性能调优技巧。 一、为什么需要大图加载优化&#xff1f; 典型场景&#xff1a; 医疗影像&#xff1a;2000015000…

基于ApachePOI实现高德POI分类快速导入PostgreSQL数据库实战

目录 前言 一、高德POI分类简介 1、数据表格 2、分类结构 二、从Excel导入到Postgresql 1、Excel解析流程 2、Mybatis批量导入 3、数据入库 三、总结 前言 在大数据与地理信息深度交融的当下&#xff0c;地理信息系统&#xff08;GIS&#xff09;的触角已延伸至各个领域…

如何打造Apache Top-Level开源时序数据库IoTDB

引言 数据与时间结合后&#xff0c;便拥有了生命。在金融、系统日志、工业产线和智能设备等领域&#xff0c;时序数据每毫秒都在不断产生。管理这些海量时序数据需要专业的数据库系统。时序数据库产品正逐渐受到市场的关注&#xff0c;本文将分享如何通过开源的方式&#xff0…

高并发内存池实战指南

项目源码&#xff1a;https://gitee.com/kkkred/thread-caching-malloc 目录 一、脱离new&#xff1a;高并发内存池如何替代传统动态分配 1.1 new的痛点&#xff1a;碎片、延迟与锁竞争 1.2 高并发内存池的替代方案&#xff1a;分层预分配无锁管理 二、大内存&#xff08;…

基于springboot+vue的数字科技风险报告管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat12开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;Maven3.3.9 系统展示 管理员登录 管理…

实战篇----利用 LangChain 和 BERT 用于命名实体识别-----完整代码

上一篇文章讲解了Langchain,实现一个简单的demo,结合利用 LangChain 和 BERT 用于命名实体识别。 一、命名实体识别模型训练(bert+CRF) bert作为我们的预训练模型(用于将输入文本转换为特征向量),CRF作为我们的条件随机场(将嵌入特征转为标签),既然要训练,那么我们的损失函…

现代 C++ 容器深度解析及实践

一、线性容器&#xff1a;std::array 与 std::forward_list 1. std::array&#xff1a;固定大小的高效容器 在传统 C 中&#xff0c;数组与 vector 的抉择常让人纠结&#xff1a;数组缺乏安全检查&#xff0c;vector 存在动态扩容开销。C11 引入的std::array完美平衡了两者优…

数据集|猪姿态检测PigBehaviorRecognitionDataset

数据集|猪姿态检测PigBehaviorRecognitionDataset 一、数据集介绍1.1 介绍1.2 用途1.3 数据集统计 二、样本类别介绍1. Lying&#xff08;躺卧&#xff09;2. Sleeping&#xff08;睡眠&#xff09;3. Investigating&#xff08;探索&#xff09;4. Eating&#xff08;进食&…

Vue-13-前端框架Vue之应用基础路由器的使用步骤

文章目录 1 路由和路由器2 基本切换效果2.1 App.vue(根组件)2.2 components(子组件)2.2.1 Home.vue(首页)2.2.2 News.vue(新闻)2.2.3 About.vue(关于)2.3 路由器2.3.1 router/index.ts2.3.2 main.ts2.4 效果展示2.5 程序流程3 笔记3.1 路由组件和一般组件3.1.1 Header.vue(一般…

GaussDB实例级自动备份策略:构建数据安全的“自动防护网”

GaussDB实例级自动备份策略&#xff1a;构建数据安全的“自动防护网” 在数字化转型的浪潮中&#xff0c;数据库作为企业核心数据的载体&#xff0c;其安全性与可恢复性直接关系到业务的连续性。对于分布式数据库GaussDB而言&#xff0c;实例级自动备份策略是保障数据安全的关…

推荐几本关于网络安全的书

对于网络安全从业者、相关专业学生以及对网络安全感兴趣的人士而言&#xff0c;掌握扎实的网络安全知识和技能至关重要。以下推荐的几本网络安全书籍&#xff0c;涵盖了网络安全领域的多个重要方面&#xff0c;是学习和研究网络安全的优质参考资料。 1、攻击网络协议&#xff…

工业4.0浪潮下PROFIBUS DP转ETHERNET/IP在轧钢厂的创新实践

在工业自动化4.0推动制造业向智能化升级的背景下&#xff0c;轧钢厂生产对设备互联与数据协同提出更高要求。PROFIBUS DP与ETHERNET/IP协议的特性差异&#xff0c;制约着西门子PLC与工业测距仪等设备的高效协作。通过协议转换技术实现两者互通&#xff0c;为轧钢生产线注入智能…

从0开始学习R语言--Day31--概率图模型

在探究变量之间的相关性时&#xff0c;由于并不是每次分析数据时所用的样本集都能囊括所有的情况&#xff0c;所以单纯从样本集去下判断会有武断的嫌疑&#xff1b;同样的&#xff0c;我们有时候也想要在数据样本不够全面时就能对结果有个大概的了解。 例如医生在给患者做诊断…

微信小程序进度条progress支持渐变色

微信小程序自带进度条progress支持渐变色代码 .wx-progress-inner-bar {border-radius: 8rpx !important;background: linear-gradient(90deg, #FFD26E 8%, #ED0700 100%) !important; }<view class"progress-box"><progress percent"80" back…