hystrix熔断器之command实现
HystrixCommand是hystrix执行命令的具体实现,实现流程如下:
1.调用HystrixCommandExecutionHook的onStart方法
3.调用HystrixRequestLog记录执行命令。
3.通过HystrixCircuitBreaker检查命令是否熔断。
3.1 如果熔断
2.1.1执行getFallback回调函数。
3.2 如果没有熔断
3.2.1 调用HystrixCommandMetrics的markCommandStart的方法,调用HystrixThreadPool的markThreadExecution方法。
3.2.2 调用HystrixCommandExecutionHook的onThreadStart、onRunStart、onExecutionStart方法
3.2.3 执行run方法,
3.2.4如果执行成功,
3.2.4.1调用HystrixCommandExecutionHook的onExecutionSuccess方法。
3.2.4.2调用HystrixThreadPool的markThreadCompletion方法,调用HystrixCommandMetrics的onThreadComplete的方法。
3.2.4.3调用HystrixEventNotifier发送SUCCESS消息
3.2.4.4调用熔断器执行成功方法。
3.2.4.5调用HystrixCommandExecutionHook的onComplete方法。
3.2.5 如果执行run方法异常
3.2.5.1 在熔断器中记录一次失败。
3.2.5.2 如果是RejectedExecutionException异常, 调用HystrixEventNotifier发送THREAD_POOL_REJECTED消息。
3.2.5.3 如果是HystrixBadRequestException异常,调用HystrixEventNotifier发送BAD_REQUEST消息
3.2.5.4 如果是HystrixTimeoutException异常,
3.2.5.5 其他一次,执行getFallback回调函数。
1
最新文章
- JQuery选择器JQuery 事件
- Android 颜色渲染PorterDuff及Xfermode详解
- [Tip] 如何在BeyondCompare中忽略不重要的区别.
- Android 调用系统的邮箱app发送邮件
- C 高级编程4 makefile 与 IO
- FMDB警告Warning: there is at least one open result set around after performing的问题
- Linux下aMule安装教程
- [转] Python正则表达式指南
- [Ext JS 4] 实战之Grid, Tree Gird编辑Cell
- Cocos2d-x 3.2 Lua演示样例 ClickAndMoveTest(点击移动測试)
- Solr在结果返回函数值
- tableView等滚动视图滚动时收缩上下导航栏与标签栏
- WPF DEV实现手风琴效果
- springboot获取applicationcontext
- (转)喜马拉雅2018 Java面试题目
- 利用css3给座右铭设置漂亮的渐变色
- ubuntu 16.04 的IP地址变更
- Java中的静态变量、静态方法问题
- 去除Many2one字段的“创建并编辑”选项
- apache 重点难点
热门文章
- JavaScript学习系列博客_9_JavaScript中的if语句、switch语句
- Mybatis_day3
- 【接口自动化】Python+Requests接口自动化测试框架搭建【三】
- DBeaver链接kerberos安全认证的Phoenix集群
- 一篇文章高效定位iframe
- 大数据计算的基石——MapReduce
- Python 3.10 明年发布,看看都有哪些新特性?
- [BUUOJ记录] [极客大挑战 2019]RCE ME
- 前端code导入excel
- 修改CentOS的yum源,改为阿里云的镜像