Hystrix-fallback实战

在《Hystrix-执行流程》中,我们说到几种情况会导致fallback,比如:

(1)短路器发现异常事件的占比达到一定的比例,直接开启短路。

(2)线程池或者信号量已满,直接reject掉。

(3)执行过程中超时,TimeoutException异常。

(4)执行过程中报错,抛出异常。

以上几种情况,只要发生其中一种,就会执行fallback方法进行降级处理。那么接下来我们看看程序的执行结果。

一、创建command

在执行过程中,我们直接抛出异常。

public class CommandFallback extends HystrixCommand {

  private final String name;

  public CommandFallback(String name) {
    super(HystrixCommandGroupKey.Factory.asKey("ExampleGroup"));
    this.name = name;
  }

  @Override
  protected String run() {
    throw new RuntimeException("this command always fails");
  }

  @Override
  protected String getFallback() {
    return name + " from fallback method !";
  }
}

二、执行command

public class CommandFallbackTest {
  public static void main(String[] args) {
    System.out.println(new CommandFallback("A").execute());
  }
}

三、执行结果

Hystrix-fallback实战_第1张图片

你可能感兴趣的:(Hystrix,Hystrix降级,SpringCloud)