Hystrix-fallback实战

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

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

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

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

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

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

一、创建command

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

public class CommandFallback extends HystrixCommand<String> {

  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());
  }
}

三、执行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值