Hystrix系列之工作流程
来源:互联网 发布:java工程师月薪 编辑:程序博客网 时间:2024/06/06 20:47
工作流程
Step1:构建命令
创建HystrixCommand或者HystrixObservableCommand对象:
HystrixCommand command = new HystrixCommand(arg1, arg2);HystrixObservableCommand command = new HystrixObservableCommand(arg1, arg2);
Step2:执行命令
K value = command.execute(); //同步,针对HystrixCommandFuture<K> fValue = command.queue(); //异步,针对HystrixCommandObservable<K> ohValue = command.observe(); //异步,全部Observable<K> ocValue = command.toObservable(); //异步,全部
Step3:判断响应是否已缓存
如果请求对应的响应已经在缓存中,直接返回响应;
Step4:判断熔断器是否打开
如果熔断器没打开,继续执行下一步;否则,命令不再执行,直接跳到步骤8,执行降级。
Step5:判断线程池、任务队列、信号量是否已满
如果没满,继续执行下一步;否则,命令不再执行,直接跳到步骤8,执行降级。
Step6:调用依赖的服务
调用依赖的外部服务,即执行HystrixObservableCommand.construct() or HystrixCommand.run()。如果命令执行超时,则会抛出TimeoutException,直接跳到步骤8,执行降级。如果命令执行成功,则回调onCompleted()方法。
Step7:监控信息收集
熔断器定时采集命令执行过程中各种信息,包括成功、失败、超时和拒绝等,用于计算判断熔断器是否需要断开/开启等。
Step8:执行降级
执行HystrixCommand.getFallback()或者HystrixObservableCommand.resumeWithFallback(),如果降级逻辑出错,则回调onError()方法。
Step9:返回响应
阅读全文
0 0
- Hystrix系列之工作流程
- Hystrix 工作流程解析
- Hystrix系列之熔断器
- Spring cloud系列八 Hystrix的用处、解决的问题、工作流程图、断路器流程
- Hystrix系列之属性配置
- Spring Cloud系列三 之 Hystrix断路器
- Hystrix系列之组件间的关系
- 《spring cloud微服务实战》读书笔记——Spring Cloud Hystrix(二)工作流程
- 工作流程之采购
- Hystrix系列-4-Hystrix的动态配置
- Hystrix学习(6)流程
- TI-Davinci开发系列之八x-loader工作流程分析
- “Ceph浅析”系列之五——Ceph的工作原理及流程
- “Ceph浅析”系列之(四)——Ceph的工作原理及流程
- TI-Davinci开发系列之八x-loader工作流程分析
- “Ceph浅析”系列之五——Ceph的工作原理及流程
- “Ceph浅析”系列之四——Ceph的工作原理及流程
- “Ceph浅析”系列之五Ceph的工作原理及流程
- MATLAB的fminunc函数使用参数解释
- opencv安装
- 批量下载文件,打包成zip压缩包
- Java中final、finally、finalize的区别
- android全屏/沉浸式状态栏下,各种键盘挡住输入框解决办法
- Hystrix系列之工作流程
- 海外SDK之----------ios集成谷歌登录 GIDSignIn
- TFS 2010 使用手册(三)权限管理
- 微商的未来 微信切换软件(里面有黑技术额)今天已更新
- searchableSelect 下拉框绑定 change
- Onvif开发之基础介绍篇
- 深度学习网络架构
- fragment activity 间传值
- JAVA多线程的四种实现方式