码迷,mamicode.com
首页 > 其他好文 > 详细

hystrix熔断器之自定义插架

时间:2017-10-25 15:27:04      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:ext   new   exec   请求   request   stc   comm   link   并发   

  Hystrix内部通过接口方式编程,具体实现通过HystrixPlugins获取。用户可以实现这些接口来自定义Hystrix相关行为。

  HystrixPlugins内部提供了5种类型的插件:

  并发相关类(HystrixConcurrencyStrategy)

  事件通知类(HystrixEventNotifier)

  度量信息类(HystrixMetricsPublisher)

  Properties配置类(HystrixPropertiesStrategy)

  HystrixCommand回调函数类(HystrixCommandExecutionHook)

  HystrixPlugins获取插件顺序:

  1.HystrixPlugins 会使用通过register注册的实现类。

  2.HystrixPlugins会去properties(HystrixDynamicProperties)配置下需找相应类型的实现类。

  3.通过ServiceLoader获取相应类型的实现类。

  4.使用默认实现类。

  HystrixPluginsproperties(HystrixDynamicProperties)配置生成顺序:

  1.通过HystrixDynamicPropertiesSystemProperties需找配置的HystrixDynamicProperties。  

  2.通过ServiceLoader获取相应类型的实现类。

  3.通过HystrixArchaiusHelper获取HystrixDynamicProperties。

  4.使用HystrixDynamicPropertiesSystemProperties。

   

HystrixPropertiesStrategy

当通过工厂类(HystrixPropertiesFactory)获取Hystrix各个组件的配置信息时,实际通过HystrixPropertiesStrategy获取。主要包括:

Hystrix命令相关配置(HystrixCommandProperties

Hystrix线程池配置(HystrixThreadPoolProperties

HystrixCollapse配置(HystrixCollapserProperties

Hystrix定时器线程池配置(HystrixTimerThreadPoolProperties

HystrixConcurrencyStrategy

并发相关类用来创建和并发相关的类,主要包括:

执行器(ThreadPoolExecutor

执行任务(Callable

阻塞队列(BlockingQueue

Hystrix请求变量(HystrixRequestVariable

创建执行器(ThreadPoolExecutor):

创建JDK执行器(ThreadPoolExecutor);如果有APPEngine使用APPEngineThreadFactory;如果没有则自定义ThreadFactory

创建执行任务(Callable):

Hystrix在使用执行器执行执行任务(Callable)之前,会调用HystrixConcurrencyStrategy的相关方法让用户分装或操作Callable,默认直接返回执行任务(Callable)。

创建阻塞队列(BlockingQueue

创建的阻塞队列会被用来创建执行器(ThreadPoolExecutor),当指定的最大队列小于零时,创建JDKSynchronousQueue,当大于等于零时,创建JDKLinkedBlockingQueue

创建Hystrix请求变量(HystrixRequestVariable

Hystrix请求变量工厂类(HystrixRequestVariableHolder)获取请求过程中存储的数据时,实际通过并发策略类(HystrixConcurrencyStrategy)来获得请求变量(HystrixRequestVariable),

Hystrix请求变量(HystrixRequestVariable

HystrixRequestContext存储Hystrix请求变量(HystrixRequestVariable)。

 

 

HystrixDynamicPropertiesSystemProperties

 

HystrixDynamicProperties

 

ServiceLoader

 

HystrixArchaiusHelper

hystrix熔断器之自定义插架

标签:ext   new   exec   请求   request   stc   comm   link   并发   

原文地址:http://www.cnblogs.com/zhangwanhua/p/7728677.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!