SpringCloud之Hytrix

   

第一步

熔断依赖命令来实现的,可以认为是线程的入口,所有需要Hytrix支持的内容 都必须要走 HystrixCommand(线程隔离),HystrixObservableCommand(信号量隔离):只有这两种命令形式,四种具体执行情况返回,没有其他可选的形式。除非你们继承它实现了自己的子类

第二步

入口,这四个的差异就是同步执行,还是异步执行

execute和queue 单次处理

observe和toObservable 类似订阅式处理

第三步

检查是否有缓存

1. 请求缓存

2. 请求合并

第四步

状态判断,Hytrix是否开启,可以认为是一把锁,如果说Hytrix这把锁打开,意思就是说我已经不让你进了。锁关闭就是允许你进

熔断器打开,就是这里的yes,直接执行getFailback

熔断了去调用getFailBack或者resumeWithFallback方法

调用getFailBack或者resumeWithFallback方法。这个方法调用,如果成功了就返回,如果失败了就报错

getFailBack就是之前说的快速失败,就是降级。降级业务其实是我们自己写的。熔断开启后,会直接调用我们预定义的getFailBack方法,这个getFailBack方法里面的内容就是即将要返回的内容。

第五步

熔断如果没有开启就调下面的方法。Hytrix给我们提供了熔断和信号量,无论是信号量还是线程池都是有上限的,如果说这两部分都出上限了。那么一样会去调用getFailBack

第六步

这两步都没有问题就到了第六步,真正执行我们的run方法。前面都是一些验证验证完成之后才真正执行command里的业务方法

业务是否执行成功,成功但是超时同样回到getFailback

第七步

验证方法如果调用失败,就会调用getFailBack方法。如果超时也会调用getFailBack方法。

如果都没有问题,第九步就返回了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值