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

hystrix文档翻译之工作原理

时间:2017-12-14 13:33:03      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:本质   文档翻译   执行   color   alt   exec   oob   参数   col   

流程图

  下面的图片显示了一个请求在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文档翻译之工作原理

标签:本质   文档翻译   执行   color   alt   exec   oob   参数   col   

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

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