zoukankan      html  css  js  c++  java
  • 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    

  • 相关阅读:
    for循环删除数组中的元素crash问题
    iOS判断字符串中含不含有汉字
    iOS 拨打电话(解决openURL延迟和不同方法比较)
    ios oc单例宏定义
    iOS UIBezierPath简单实用
    iOS视图切割圆角
    iOS 内购集成与遇到的坑,添加新内购项目
    iOS工程中创建pch文件
    四舍五入的方法
    ScrollView定时器复用
  • 原文地址:https://www.cnblogs.com/zhangwanhua/p/7511209.html
Copyright © 2011-2022 走看看