hystrix熔断器之自定义插架
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hystrix熔断器之自定义插架相关的知识,希望对你有一定的参考价值。
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使用APPEngine的ThreadFactory;如果没有则自定义ThreadFactory。
创建执行任务(Callable):
Hystrix在使用执行器执行执行任务(Callable)之前,会调用HystrixConcurrencyStrategy的相关方法让用户分装或操作Callable,默认直接返回执行任务(Callable)。
创建阻塞队列(BlockingQueue)
创建的阻塞队列会被用来创建执行器(ThreadPoolExecutor),当指定的最大队列小于零时,创建JDK的SynchronousQueue,当大于等于零时,创建JDK的LinkedBlockingQueue。
创建Hystrix请求变量(HystrixRequestVariable)
当Hystrix请求变量工厂类(HystrixRequestVariableHolder)获取请求过程中存储的数据时,实际通过并发策略类(HystrixConcurrencyStrategy)来获得请求变量(HystrixRequestVariable),
Hystrix请求变量(HystrixRequestVariable)
HystrixRequestContext存储Hystrix请求变量(HystrixRequestVariable)。
HystrixDynamicPropertiesSystemProperties
HystrixDynamicProperties
ServiceLoader
HystrixArchaiusHelper
以上是关于hystrix熔断器之自定义插架的主要内容,如果未能解决你的问题,请参考以下文章
微服务架构整理-(九SpringCloud实战之Hystrix [2])
微服务架构整理-(九SpringCloud实战之Hystrix [2])
spring cloud --- Ribbon 客户端负载均衡 + RestTemplate + Hystrix 熔断器 [服务保护] ---心得
spring cloud --- Ribbon 客户端负载均衡 + RestTemplate + Hystrix 熔断器 [服务保护] ---心得