hystrix文档翻译之插件

插件

  可以通过实现插件来改变Hystrix的行为。可以通过HystrixPlugins来注册自定义插件,这些插件会被应用到HystrixCommand,HystrixObservableCommand和HystrixCollapser。

插件类型

  • 事件通知

  在HystrixCommand和HystrixObservableCommand执行过程中会触发一些时间,实现HystrixEventNotifier可以监听这些事件进行一些告警和数据收集。

  • 发布metrics

  通过实现HystrixMetricsPublisher可以获取所有实例的metrics信息,这样我们就可以获取和存储这些metrics信息,以便后续处理。默认的实现不会发布这些metrics信息。

  • 配置策略

  通过实现HystrixPropertiesStrategy可以改变配置的默认实现。系统默认使用Archaius.

  • 并发策略

  Hystrix实现ThreadLocal,Callable,Runnable,ThreadPoolExecutor和BlockingQueue来实现线程隔离和请求作用域。

  Hystrix默认已经实现了这些功能,也提供了插件让用户通过实现HystrixConcurrencyStrategy可以实现自定义的组件:

  getThreadPool和getBlockingQueue方法可以让你实现自定义的线程池和队列。

  wrapCallable方法可以让你对Callable进行处理,

  getRequestVarible方法实现一个请求作用域。

  • HystrixCommandExecutionHook

   通过实现HystrixCommandExecutionHook可以在HystrixCommand或HystrixObservableCommand执行期间的响应阶段进行回调。

HystrixCommandExecutionHookmethod when Hystrix calls the method
onStart before the HystrixInvokable begins executing
onEmit whenever the HystrixInvokable emits a value
onError if the HystrixInvokable fails with an exception
onSuccess if the HystrixInvokable completes successfully
onThreadStart at the start of thread execution if the HystrixInvokable is a HystrixCommand executed using the THREADExecutionIsolationStrategy
onThreadComplete at the completion of thread execution if the HystrixInvokable is a HystrixCommand executed using the THREAD ExecutionIsolationStrategy
onExecutionStart when the user-defined execution method in the HystrixInvokable begins
onExecutionEmit whenever the user-defined execution method in the HystrixInvokable emits a value
onExecutionError when the user-defined execution method in the HystrixInvokable fails with an exception
onExecutionSuccess when the user-defined execution method in the HystrixInvokable completes successfully
onFallbackStart if the HystrixInvokable attempts to call the fallback method
onFallbackEmit whenever the fallback method in the HystrixInvokableemits a value
onFallbackError if the fallback method in the HystrixInvokable fails with an exception or does not exist when a call attempt is made
onFallbackSuccess if the fallback method in the HystrixInvokable completes successfully
onCacheHit if the response to the HystrixInvokable is found in the HystrixRequestCache

怎么使用

    

原文地址:https://www.cnblogs.com/zhangwanhua/p/8117006.html

时间: 2024-10-23 11:42:07

hystrix文档翻译之插件的相关文章

Android官方技术文档翻译——Gradle 插件用户指南(4)

近期赶项目,白天基本没时间,仅仅有晚上在家的时候才干看一看.昨天晚上仅仅翻译完了第四章,今天就仅仅发第四章吧. 本文译自Android官方技术文档<Gradle Plugin User Guide>,原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide. 翻译不易.转载请注明CSDN博客上的出处: http://blog.csdn.net/maosidiaoxian/article/details/4195580

Android官方技术文档翻译——Gradle 插件用户指南(6)

没想到翻译这篇<Gradle 插件用户指南>拖了差不多一个月,还跨年了.不好还好,在2号时终于一口气把剩下的给翻译完了(其实那天剩下的也就不到一章). 今天先发一下第六章,明天再发第七章. 本文译自Android官方技术文档<Gradle Plugin User Guide>,原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide. 翻译不易,转载请注明CSDN博客上的出处: http://blog.c

Android官方技术文档翻译——Gradle 插件用户指南(7)

本文译自Android官方技术文档<Gradle Plugin User Guide>,原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide. 翻译不易,转载请注明CSDN博客上的出处: http://blog.csdn.net/maosidiaoxian/article/details/42417779 前三章见<Android官方技术文档翻译--Gradle 插件用户指南(1-3)>. 第四章见&

Android官方技术文档翻译——Gradle 插件用户指南(1-3)

不知道是什么网络问题,上午一直发不了博客,其它页面基本正常,就是在写博客这里,每次打开都是响应超时.刚才用了VPN,顺便试了一下,竟然能够编辑.想是CDN之类的问题吧. 这次翻译的是Gradle 插件用户指南,也就是Gradle上的Android插件的官方文档.文档非常长,加上近期激情不够,翻译得有些慢.到昨天为止,才译到第四章.今天先发前三章. 本文译自Android官方技术文档<Gradle Plugin User Guide>,原文地址:http://tools.android.com/

hystrix文档翻译之概述

Hystrix是什么 在一个大型的分布式系统中,难免有些依赖服务会失败.hystrix通过容错逻辑来控制不同服务间的交互.hystrix通过隔离各服务交互节点来防止连级错误,并且提供降级功能,最终保证系统的可靠性. hystrix的历史 略 hystrix作用 hystrix被设计来解决一下问题: 通过控制调用第三方包时的延时和错误来提供保护. 避免复杂系统的连级错误. 对于错误快速失败和恢复. 当异常出现是提供降级服务. 实时的监控,高警,和其他控制选项. hystrix解决哪些问题 一个复杂

hystrix文档翻译之开始使用

获取包 使用maven获取包. <dependency> <groupId>com.netflix.hystrix</groupId> <artifactId>hystrix-core</artifactId> <version>x.y.z</version> </dependency> 使用lvy获取包 <dependency org="com.netflix.hystrix" na

hystrix文档翻译之工作原理

流程图 下面的图片显示了一个请求在hystrix中的流程图. 1.构造一个HystrixCommand或者HystrixObservableCommand对象 第一步是创建一个HystrixCommand或者HystrixObservableCommand对象来执行依赖请求.创建时需要传递相应的参数. 如果请求只返回一个单一值,使用HystrixCommand. HystrixCommand command = new HystrixCommand(arg1, arg2); 如果希望返回一个Ob

hystrix文档翻译之如何使用

Hello World! 使用HystrixCommand实现"Hello World". public class CommandHelloWorld extends HystrixCommand<String> { private final String name; public CommandHelloWorld(String name) { super(HystrixCommandGroupKey.Factory.asKey("ExampleGroup&

下载Android 5.0源码(附源码)

下载方法见我的另一篇博客:http://blog.csdn.net/maosidiaoxian/article/details/41680769 2014-12-24更新:5.0.1源码已上传. 这次下载的是5.0.0_r7的源码,下载到99%的时候遇见以下问题: [plain] view plaincopy Fetching projects:  99% (478/482)  Fetching project platform/external/sqlite error: Cannot fet