原理
1、流程图
官方原版流程图
1、方法标注 @HystrixCommand注解
2、方法执行进入执行队列、方法执行、【图中标注 .toObservable()状态】
3、缓存是否可见【有 返回缓存数据;没有进入下一步判断】
4、断路器是否打开【未打开 直接判断信号量线程池是否拒绝 ;打开且触发断路进去fallback方法】
5、信号量线程池是否拒绝【未拒绝 创建线程池隔离舱执行业务逻辑 ;拒绝 执行fallback方法】
6、业务逻辑执行是否成功【成功 判断是否超时;未成功 执行fallback方法】
7、判断是否超时【超时 不返回 未超时返回数据】
8、fallback执行结果【成功 返回数据 ;失败 返回失败或者自行实现业务方法】
其中方法执行结果要返回断路器健康状态给断路器【也就是图中绿色4】
具体信息可见官方详细:https://github.com/Netflix/Hystrix/wiki/How-it-Works
网友评论