SpringCloud - Hystrix 服务熔断器

2021-03-11 15:30

阅读:491

标签:处理   style   超时   黄色   app   cto   流量   rgba   错误   

背景1. 什么是服务雪崩?

技术图片

 

 

 

技术图片

 

 

 

 

背景2. 什么是服务熔断?

技术图片

 

1. 什么是Hystrix? 有什么用?

技术图片

 

 

 

2. Hystrix服务熔断(在服务端做异常处理)

技术图片

 

 

2.1 引入依赖

技术图片

 

 

 

2.2 @HystrixCommand 引入服务熔断时的备选方法

依然会通过hystrixGet()返回一个“格式正确”的结果,只不过结果里的data是假的,是提示用户当前发生了错误。

技术图片

 

 

 

2.3 在主函数开启对断路器的支持

circuit(电路) breaker -- 断路器

技术图片

 

 

 

 

3. Hystrix服务降级(在客户端做异常处理)

 

服务降级的例子:淘宝在双11当晚的时候,当你需要“退款”,会提示你“退款服务暂时不可用...”。
就是因为当晚“购买”功能的流量太大,资源不够,因此需要把“退款”功能关掉,资源给“购买”功能。

关闭后,当请求流向“退款”功能,就会显示客户端(前端)设置好的默认消息“退款服务暂时不可用...”
这就是“服务降级” -- 原本应该提供真实的“退款服务”,如今变成了一条“默认消息”而已。

 

 

技术图片

 

 

 

3.1 编写FallbackFactory

技术图片

 

 

三个provider module会引用 api module:

技术图片

 

 

技术图片

 

 

3.2 开启服务降级

要在feign的项目里配置

技术图片

 

 

3.3 服务降级效果

技术图片

 

 

4. 服务熔断 vs 服务降级(重点)

服务降级的例子:淘宝在双11当晚的时候,当你需要“退款”,会提示你“退款服务暂时不可用...”。
就是因为当晚“购买”功能的流量太大,资源不够,因此需要把“退款”功能关掉,资源给“购买”功能。

关闭后,当请求流向“退款”功能,就会显示客户端(前端)设置好的默认消息“退款服务暂时不可用...”
这就是“服务降级” -- 原本应该提供真实的“退款服务”,如今变成了一条“默认消息”而已。

 

技术图片

 

 

 

5. Hystrix DashBoard可视化监控面板 

一目了然的监控多个微服务的状态:绿色的表示安全,黄色的表示有超时现象,红色的表示失败

技术图片

 

 

5.1 写一个dashboard监控页面:导入依赖

新建dashboard module,需要新导入:

技术图片

  

5.2 写一个dashboard监控页面:application.yml配置端口号9001

 技术图片

 

5.3 写一个dashboard监控页面:通过注解开启功能

 技术图片

 

5.4 被监控的服务提供者,需增加一个servlet bean

service provider module需要保证有这个监控依赖:

技术图片

技术图片

 

 

5.5 使用Hystrix DashBoard

技术图片

 

技术图片

 

 

 

 

技术图片

 

5.5.1 七个颜色的含义  

技术图片

 

 

5.5.2 圆圈的含义

技术图片

 

 

5.5.3 折线图的含义

 技术图片

 

SpringCloud - Hystrix 服务熔断器

标签:处理   style   超时   黄色   app   cto   流量   rgba   错误   

原文地址:https://www.cnblogs.com/frankcui/p/14124264.html


评论


亲,登录后才可以留言!