首页 > 其他 > 详细

hystrix文档翻译之工作原理

时间:2017-12-14 12:43:18      阅读:206      评论:0      收藏:0      [点我收藏+]

流程图

  下面的图片显示了一个请求在hystrix中的流程图。

技术分享图片

 

 

1.构造一个HystrixCommand或者HystrixObservableCommand对象

  第一步是创建一个HystrixCommand或者HystrixObservableCommand对象来执行依赖请求。创建时需要传递相应的参数。

  如果请求只返回一个单一值,使用HystrixCommand。

HystrixCommand command = new HystrixCommand(arg1, arg2);

  如果希望返回一个Observable来监听多个值,使用HystrixObservableCommand。

HystrixObservableCommand command = new HystrixObservableCommand(arg1, arg2);

2.执行命令

  有四种方法来执行命令(前面两种只对HystrixCommand有用,HystrixObservableCommand没有相应的方法)。

  • execute-阻塞,阻塞直到收到调用的返回值(或者抛出异常)
  • queue 返回一个future,可以通过future来获取调用的返回值。
  • observe 监听一个调用返回的Observable对象。
  • toObservable 返回一个Observable,当监听该Observable后hystrix命令将会执行并返回结果。
K             value   = command.execute();
Future<K>     fValue  = command.queue();
Observable<K> ohValue = command.observe();         //hot observable
Observable<K> ocValue = command.toObservable();    //cold observab

  同步调用execute本质是调用了queue().get().queue() ,而queue本质上调用了toObservable().toBlocking().toFuture().本质上都是通过rxjava的Observable实现。

  

hystrix文档翻译之工作原理

原文:http://www.cnblogs.com/zhangwanhua/p/8037019.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!