soul源码学习(十五)-熔断插件之hystrix(下)

hystrix在soul中的集成

hystri在soul中的插件类为HystrixPlugin,继承了AbstractSoulPlugin,与其他插件一样,我们来看看最终的执行方法,doExecute,如下:
在这里插入图片描述
代码比较简短,主要做的事情如下:

  1. 将配置的熔断规则转换为HystrixHandle类,该类的主要属性就是我们在soul-admin中配置的熔断规则属性
  2. 构造命令模板,具体的构造过程如下:
    在这里插入图片描述
    这里边根据配置的不同(信号量和线程),来构造不同的命令模板(HystrixCommand和HystrixCommandOnThread,两者都实现了Command), 先来看信号量命令模板的构造,HystrixCommand类,主要方法为:
 @Override
    public Observable<Void> fetchObservable() {
        return RxReactiveStreams.toObservable(this.execute());
    }

大致的意思是给每次执行的时候加上监听,其中this.execute()方法调用的hystrix自身提供的方法,具体执行的动作暂不分析
如果达到熔断条件的话,会调用该方法
在这里插入图片描述
如果配置了失败后回调的url,soul会将其转发至该url并将结果返回
3. 信号量和线程模板被进行了统一封装,调用过程基本一致,具体线程和信号量的实现细节就要看hystrix的实现了,后期有机会再看

总结

本篇简单看了下hystrix插件是在soul中怎么集成的,最终熔断器的实现调用的是hystrix自身的实现,其中(HystrixCommand和HystrixCommandOnThread这两个类继承了hystrix中相关的实现,统一被soul调用的入口处是fetchObservable,但是具体的执行过程,包括怎么放行请求,怎么处触发熔断还没进行贯通,需要debug调试,后续会补上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值