Hystrix工作流程

官网流程图:

在这里插入图片描述

1:由HystrixCommand或者HystrixObservableCommand作为构造入口,通过接口方式或者通过注解方式都可以。
2:然后,从上述两者选择一种来获取command,但是不管哪种方法,最后都依赖于toObservable()方法。
3:查缓存cached response,这里的available caache 就是可用的缓存server,其中包括正确的或者服务降级的都会在这里有缓存,有的话就直接走缓存。
4:判断是否打开断路器,如果有,则执行fallback,如果没有打开断路,证明是健康的调用。
5:调用的时候查找可用的线程池,如果线程满了并且队列也满了,这个时候执行拒绝策略,拒绝策略走的也是fallback
6:拿到可用的线程后调用run()方法进行调用,发起请求,执行失败或者超时都会走fallback同时回到断路器进行失败次数统计,成功就直接返回resulting Observable,同时return 保存到 cached response中。
7:拿到结果,判断是否执行成功,是否执行超时。如果失败或者超时,返回到断路器那里计算失败次数,判断是否需要打开断路器。
8:其中第6步和第4步都是会有一个健康计数器在统计调用成功的次数和失败的次数,同时方便打开断路器。

断路器打开
线程池任务满
执行失败
执行超时
都会来到第八步执行fallback方法。

9:如果上述执行流程都没问题,那么就把结果返回,如果出现问题,执行服务降级的方法后返回
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值