zoukankan      html  css  js  c++  java
  • hystrix(5) 使用

      这一节我们开始了解hystrix执行的主流程,在讲解主流程之前,我们先来看一下怎么使用hystrix。

    引入jar

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

    继承HystrixCommand

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

      run为需要执行的命令,在执行过程中的发送异常,则会触发getFallback来达到优雅降级的目的。 出于对报告和提醒的目的,group这个键用于对命令进行分组。

    调用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方法,返回结果。

  • 相关阅读:
    JavaScript概述
    JavaScript概述
    python语法基础
    python 网络编程
    python 日志模块
    python 异常处理
    python tricks
    记录_省赛(一)
    异或加密算法
    三目条件运算符
  • 原文地址:https://www.cnblogs.com/zhangwanhua/p/8241678.html
Copyright © 2011-2022 走看看