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    

最新文章

  1. JQuery选择器JQuery 事件
  2. Android 颜色渲染PorterDuff及Xfermode详解
  3. [Tip] 如何在BeyondCompare中忽略不重要的区别.
  4. Android 调用系统的邮箱app发送邮件
  5. C 高级编程4 makefile 与 IO
  6. FMDB警告Warning: there is at least one open result set around after performing的问题
  7. Linux下aMule安装教程
  8. [转] Python正则表达式指南
  9. [Ext JS 4] 实战之Grid, Tree Gird编辑Cell
  10. Cocos2d-x 3.2 Lua演示样例 ClickAndMoveTest(点击移动測试)
  11. Solr在结果返回函数值
  12. tableView等滚动视图滚动时收缩上下导航栏与标签栏
  13. WPF DEV实现手风琴效果
  14. springboot获取applicationcontext
  15. (转)喜马拉雅2018 Java面试题目
  16. 利用css3给座右铭设置漂亮的渐变色
  17. ubuntu 16.04 的IP地址变更
  18. Java中的静态变量、静态方法问题
  19. 去除Many2one字段的“创建并编辑”选项
  20. apache 重点难点

热门文章

  1. JavaScript学习系列博客_9_JavaScript中的if语句、switch语句
  2. Mybatis_day3
  3. 【接口自动化】Python+Requests接口自动化测试框架搭建【三】
  4. DBeaver链接kerberos安全认证的Phoenix集群
  5. 一篇文章高效定位iframe
  6. 大数据计算的基石——MapReduce
  7. Python 3.10 明年发布,看看都有哪些新特性?
  8. [BUUOJ记录] [极客大挑战 2019]RCE ME
  9. 前端code导入excel
  10. 修改CentOS的yum源,改为阿里云的镜像