hystrix(5) 使用

  這一節咱們開始瞭解hystrix執行的主流程,在講解主流程以前,咱們先來看一下怎麼使用hystrix。異步

引入jaride

<dependency>
   <groupId>com.netflix.hystrix</groupId>
   <artifactId>hystrix-core</artifactId>
   <version>1.5.10</version>
</dependency>

繼承HystrixCommandspa

  public HelloWorldHystrixCommand() {
  super(HystrixCommandGroupKey.Factory.asKey("ExampleGroup"));
  }
  @Override
  protected String run() {
    return "Hello ";
  }
  @Override     
  protected String getFallback() {
         return "Hello Fallback";     
  }
}

  run爲須要執行的命令,在執行過程當中的發送異常,則會觸發getFallback來達到優雅降級的目的。 出於對報告和提醒的目的,group這個鍵用於對命令進行分組。.net

調用Hystrix命令
  有四種方法執行命令:
String s = new CommandHelloWorld("Bob").execute();
Future<String> s = new CommandHelloWorld("Bob").queue();
Observable<String> s = new CommandHelloWorld("Bob").observe();
Observable<String> s = new CommandHelloWorld("Bob").toObserve();
  • execute-同步執行,等待返回結果
  • queue-異步執行,得到一個Future,經過Future獲取結果.
  • observe-異步執行,得到一個Observable,經過Observable獲取結果。
  • toObservable-異步執行,得到一個Observable,經過Observable獲取結果,與observe不一樣的時,該Observable在第一次監聽執行,後面的監聽者將接收不到以前發生的消息,而observe方法獲取的Observable,在方法調用時執行,後面的監聽者能夠接收到以前發生的消息。

   當調用這四個方法時,最終會執行run方法,並返回執行的結果,若是在執行過程當中發生異常就會調用fallback方法,返回結果。code

相關文章
相關標籤/搜索