+-
断路器模式

该回退方法和实际方法应该返回相同的返回类型。

@HystrixCommand(fallbackMethod = "reliable")
  public String readingList() {
    URI uri = URI.create("http://localhost:8090/recommended");

    return this.restTemplate.getForObject(uri, String.class);
  }

  public String reliable() {
    return "Cloud Native Java (O'Reilly)";
  }

我应该做什么来从回退方法reading list返回String并从实际方法reliable返回一些Object?

3
投票

根据定义,回退方法意味着在发生某些事情时替换真实方法。 你不能返回不同的类型。它没有任何意义。 因此,方法签名必须完全相同,只有少数例外。

返回类型必须相同或协变 方法参数必须相同。并且您可以添加类型为 Throwable的额外参数以获取调用回退的异常。