基于springcloud的开发者实践:hystrix-dashboard熔断仪表盘
断路器仪表盘HystrixDashboard
Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard可以直观地看到各Hystrix Command的请求响应时间,请求成功率等数据。
1、 新建工程hystrix-dashboard
pom.xml文件依赖如下
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2、 开启HystrixDashBoard
在启动类中,添加@EnableHystrixDashboard注解,开启HystrixDashBoard
3、 yml配置文件
server:
port: 8766
spring:
application:
name: hystrix-dashboard
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
instance:
lease-expiration-duration-in-seconds: 2
lease-renewal-interval-in-seconds: 1
logging:
file: hystrix-dashboard.log
端口号为8766,并且注册到eureka中,服务名为hystrix-dashboard。
4、 访问仪表盘界面
5、 对负载均衡ribbon进行熔断
5.1 查看ribbon中的hystrix.stream流:
直接在浏览器中输入localhost:8764/hystrix.stream可以看到ping信息
5.2 在仪表盘里输入ribbon的hystrix.stream
若SERVICE-HI和SERVICE-HELLO都在启动状态(分别通过RIBBON去访问者两个应用服务),请求一次后得到如下视图:
5.3 断开SERVICE-HELLO的应用
(1)在eureka中只有SERVICE-HI应用和SERVICE-RIBBON,无SERVICE-HELLO;
(2)通过SERVICE-RIBBON分别触发SERVICE-HI和SERVICE-HELLO应用,发现SERVICE-HELLO已熔断;
(3)查看dashboard仪表盘可以看到如下监控
6、 对单个服务进行熔断
6.1 对SERVICE-HELLO这个服务添加熔断机制
(1)添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
(2)启动类上开启熔断,添加@EnableHystrix注解
(3)在需要熔断的方法上添加@HystrixCommand注解进行熔断降级
6.2 查看ribbon中的hystrix.stream
在浏览器中输入http://localhost:8765/hystrix.stream
6.3 在hystrix-dashboard中查看
输入http://localhost:8765/hystrix.stream,并去触发HELLO-SERVICE应用。
点击15次后显示触发成功次数15次,Pool Size默认为10;
7、 仪表盘详解
7.1 仪表盘界面详解
7.2 断路信息详解
以下是引用图片
7.3 判断断路器的打开/关闭状态isOpen()
如果断路器打开标识为true,则直接返回true,表示断路器处于打开状态,否则,就从度量指标对象metrics中获取HealthCounts统计对象做进一步判断(该对象记录了一个滚动时间窗内的请求信息快照,默认时间窗为10秒)
1)如果它的请求总数(QPS)在预设的阈值范围内就返回false,表示断路器处于未打开状态,该阈值的配置参数为circuitBreakerRequestVolumeThreshold,默认值为20.
2)如果错误百分比在阈值范围内就返回false,表示断路器处于未打开状态,该阈值的配置参数为circuitBreakerErrorThresholdPercentage,默认值为50.
如果上面的两个条件都不满足,则将断路器设置为打开状态(熔断/短路)。同时,如果是从关闭状态切换到打开状态的话,就将当前时间记录到circuitOpenedOrLastTestedTime对象中。
代码:https://github.com/Anyda123
基于springcloud的开发者实践:hystrix-dashboard熔断仪表盘相关推荐
- springcloud系列九 整合Hystrix Dashboard
Hystrix Dashboard是Hystrix的仪表盘组件,主要用来实时监控Hystrix的各项指标信息,通过界面反馈的信息可以快速发现系统中存在的问题. 整合快速体验: pom.xml(这个是F ...
- 【SpringCloud】服务降级 Hystrix DashBoard
文章目录 1.概述 2.案例 2.1 案例1 2.1.1 pom 2.1.2 主类 2.1.3 配置 2.1.4 provider 2.1.5 测试 2.1.6 被监控者 1.概述 视频笔记:http ...
- SpringCloud学习记录 | 第十篇:Hystrix DashBoard 实时图像监控界面(豪猪哥)
一.Hystrix DashBoard Hystrix提供了准实时的调用监控(Hystrix Dashboard),Hystrix会持续记录所有的通过Hystrix发起的请求执行信息,并以统计报表和图 ...
- Hystrix及Hystrix Dashboard
Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command的请求响应时间,请求成功率等数据 ...
- springcloud(五):熔断监控Hystrix Dashboard和Turbine
Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command的请求响应时间, 请求成功率等数 ...
- 跟着狂神学SpringCloud(Rest环境搭建+Eureka服务注册与发现+ribbon+Feign负载均衡+Hystrix+服务熔断+Zuul路由网关+SpringCloud config分布)
跟着狂神学SpringCloud SpringCloud 回顾之前的知识- JavaSE 数据库 前端 Servlet Http Mybatis Spring SpringMVC SpringBoot ...
- 爱油科技基于SpringCloud的微服务实践
个人简介 刘思贤(微博@starlight36),爱油科技架构师.PMP.主要负责业务平台架构设计,DevOps实施和研发过程持续改进等,关注领域驱动设计与微服务.建设高效团队和工程师文化培养. 摘要 ...
- springcloud-知识点总结(三):Hystrix Dashboard turbine Zuul SpringCloud Config
1.Hystrix断路器简介 Hystrix断路器简介 hystrix对应的中文名字是"豪猪",豪猪周身长满了刺,能保护自己不受天敌的伤害,代表了一种防御机制,这与hystrix本 ...
- SpringCloud系列七:Hystrix 熔断机制(Hystrix基本配置、服务降级、HystrixDashboard服务监控、Turbine聚合监控)...
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:Hystrix 熔断机制 2.具体内容 所谓的熔断机制和日常生活中见到电路保险丝是非常相似的,当出现了问题之后,保险丝 ...
最新文章
- [原]不祥的CPU——Alpha
- PHP 作为SocketClient发送字节数组
- 与C#中的typedef等效
- SSM三大框架整合Springfox(Swagger2)详细解决方案
- windows下的虚拟内存分配分析
- 小波变换输出变量详解
- Linux中的防火墙----iptables
- 文本挖掘(part4)--N-gram模型
- 直接插入排序,折半插入排序,希尔排序,简单选择排序,冒泡排序,快速排序模板以及比较次数与移动次数的分析,折半搜索算法模板
- [开发手记] 使用.NET实现你的IP切换器
- django debug=false后静态文件丢失_python框架Django实战商城项目之工程搭建
- python如何确定拐点_python – 在样条拟合1d数据中找到拐点
- Ubuntu学习日记--Lesson10:gcc、make、makefile、cmake、cmakelists区别
- python服务器运维步骤_python运维服务器
- LT8618SXB-HDMI发射器,运行功率小于100mA播放24bit 1080P内容,待机功率小于2mA
- 中西方对时间的差异_中西方时间观差异的跨文化分析
- 罗马盘、大力盘、大圣盘等搜索网站,简单绕过付费
- IOS App的简单开发实例
- linux iptable命令用法
- k Nearest Neighbor Algorithm
热门文章
- 虚函数和虚表指针的例子
- [有限元] DistMesh Matlab 程序示例
- urban数据集_JUST技术|CK实现时序数据管理
- 宝塔 + 百度BCC + centos + vue + 搭建nginx服务器
- 判断网页是否为微信内置浏览器打开?
- 苹果cms_影视双端源码_支持在线切换前端主题+安装教程文档
- 华为交换机配置时区_华为交换机怎么设置时间?
- 中getname_浅析JS中的class
- 只腐蚀毛刺 腐蚀算法_去毛刺工艺大全,一次性列举了14种方法,非常全面
- 扁平图文列表小程序模板