8-30 Hystrix章节总结


回顾,这个图是面试的时候必考的内容。
Hystris和每个人是息息相关的,不管你是架构设计,不管是一线开发,不管你是学习的状态。Hystris都是要求大家必知必会的内容。

无论怎么封装HystrisCommand还是怎么写FallBack,还是怎么设置线程池,还是怎么限制超时,这些东西都和你的业务息息相关。

首先本身有两种命令形式,分成四种执行情况返回,可以分为量大类,一个是execute和queue,他们表示单次处理。
observe和toObservable更多的是进行类似于订阅式的处理。
HystrixCommand和HystrixObservableCommand最大的区别就是HystrixCommand默认是线程隔离,HystrixObservableCommand默认是信号量隔离,同时它可以执行多个命令。

检查缓存

下一步检查缓存,请求合并,请求缓存。这里有个重要的点就是一定要开启Hystrix上下文。他们都要在我们的Hystrix上下文中执行,
请求合并注意的另外一点,它要求两次请求足够的近才能合并,而这个参数我们是可以设置的。

下一步

首先检查断路器有没有开启,如果开启就会始终执行我们的fallBack。如果没开启,就会去检查信号量,线程池数量有没有满,如果满了直接fallBack如果没有满进行下一步。

进行下一步就是到6这里,真正执行我们的业务方法了。run或者construct

执行业务的时候就会有成功,有失败。
如果失败就是走fallBack。这里默认是有个例外的,如果大家报的错误是HystrixBadRequestException它不会触发fallBack而是直接把异常给大家跑出来。
当我们真正在开始使用的时候,会自己封装一些异常,这个时候我们可以用ignoreException去忽略我们的异常,也就是做了个类似HystrixBadRequestException的请求,这样它就可以抛出来了这个异常。


超时:业务虽然执行成功了,但是太慢也不行啊,超时也会触发fallBack

fallBack本身就有个successful的概念,如果fallbacksuccess了就返回如果失败了就抛出错误。

检查断路器的健康状态。


结束

原文地址:https://www.cnblogs.com/wangjunwei/p/12833626.html