首页 > 其他 > 详细

Hystrix - 什么是Hystrix?隔离模式/断路器/服务降级怎么协调工作?

时间:2021-09-08 15:23:03      阅读:37      评论:0      收藏:0      [点我收藏+]

一、什么是Hystrix? 有什么用?

技术分享图片

 

 

二、Hystrix隔离模式/断路器/服务降级怎么协调工作?

2.1 简要总结

一旦分配给“积分服务”的hystrix线程池中的线程全被占用且无响应,熔断器Circuit Breaker就会打开,不再调用实际的“积分服务”,改为调用降级逻辑。

技术分享图片

 

 

2.2 Hystrix详细流程

技术分享图片

 

 

流程说明:
1:每次调用创建一个新的HystrixCommand,把依赖调用封装在run()方法中。
2:执行execute()/queue做同步或异步调用。
3:判断熔断器(circuit-breaker)是否打开,如果打开跳到步骤8,进行降级策略,如果关闭进入步骤。
4:判断线程池/队列/信号量是否跑满,如果跑满进入降级步骤8,否则继续后续步骤。
5:调用HystrixCommand的run方法。运行依赖逻辑
5a:依赖逻辑调用超时,进入步骤8。
6:判断逻辑是否调用成功
6a:返回成功调用结果
6b:调用出错,进入步骤8。
7:计算熔断器状态,所有的运行状态(成功, 失败, 拒绝,超时)上报给熔断器,用于统计从而判断熔断器状态。
8:getFallback()降级逻辑。
  以下四种情况将触发getFallback调用:
 (1):run()方法抛出非HystrixBadRequestException异常
 (2):run()方法调用超时
 (3):熔断器开启拦截调用
 (4):线程池/队列/信号量是否跑满
8a:没有实现getFallback的Command将直接抛出异常
8b:fallback降级逻辑调用成功直接返回
8c:降级逻辑调用失败抛出异常
9:返回执行成功结果

 

Hystrix - 什么是Hystrix?隔离模式/断路器/服务降级怎么协调工作?

原文:https://www.cnblogs.com/frankcui/p/15241869.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!