hystrix概述
hystrix:断路器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
hystrix可以实现降级和熔断:
- 降级
调用远程服务失败(宕机、500错、超时),可以降级执行当前服务中的一段代码,向客户端返回结果
快速失败
- 熔断
当访问量过大,出现大量失败,可以做过热保护,断开远程服务不再调用
限流
防止故障传播、雪崩效应
在微服务系统中,服务之间进行依赖,避免有调用其中服务失败,而引起其他服务大范围宕机,造成雪崩效应,hystrix熔断可在满足熔断条件(默认10秒20次以上请求,同时50%失败)后执行降级。快速断开故障服务,保护其他服务不受影响。
降级
第一步:sp06添加hystrix依赖
第二步:主程序添加 @enablecircuitbreaker 启用 hystrix 断路器
第三步:ribboncontroller 中添加降级方法
-
为每个方法添加降级方法,例如
getitems()
添加降级方法getitemsfb()
-
添加
@hystrixcommand
注解,指定降级方法名
第四步:启动eureka、item和hystrix服务器进行测试
http://localhost:3001/item-service/35
hystrix超时设置:
超时时间设置应该超过ribbon重试时间,否则重试失效。
hystrix等待超时后, 会执行降级代码, 快速向客户端返回降级结果, 默认超时时间是1000毫秒。
可在yml中设置超时时间:
熔断
主程序添加 @enablecircuitbreaker 启用 hystrix 断路器,熔断自动打开。
hystrix故障监控-hystrix dashboard断路器仪表盘
hystrix使用springboot提供的actuator健康管理,监控各个端点。
actuator中的hystrix.stream可以监控hystrix断路器各端点日志。
第一步:sp06的pom中添加actuator依赖
第二步:在yml中配置健康监控的内容
第三步:测试actuator健康监控
http://localhost:3001/actuator/ 搭建hystrix dashboard仪表盘:
仪表盘项目是一个完全独立的项目。
第一步:创建springboot项目sp08-htstrix-dashboard
第二步:添加hystrix dashboard依赖
第三步:主程序上添加@enablehystrixdashboard注解
第四步:配置允许给那些服务器开启权限
第五步:监控查看
http://localhost:4001/hystrix/
第六步:查看hystrix stream监控数据端点
输入hystrix监控地址
访问item/user/order服务器,查看仪表盘。
第六步:使用ab进行并发访问测试
使用 apache 的并发访问测试工具 ab进行访问测试。
打开ab工具/bin文件目录--cmd--输入命令:
并发50,发送20000个请求,查看仪表盘。
到此这篇关于一文读懂spring cloud-hystrix的文章就介绍到这了,更多相关spring cloud hystrix内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://segmentfault.com/a/1190000039323851