java - 断路器模式

标签 java microservices hystrix circuit-breaker

后备方法和实际方法应该返回相同的返回类型吗?

@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)";
  }

我应该怎么做才能从后备方法阅读列表返回字符串并从实际方法可靠返回一些对象?

最佳答案

根据定义,后备方法意味着如果发生某些事情,则替换真实方法。
您不能返回不同的类型。这没有任何意义。
因此,除了少数异常(exception),方法签名必须完全相同。

  1. 返回类型必须相同或协变
  2. 方法参数必须相同。您还可以添加一个 Throwable 类型的额外参数来获取调用回退的异常。

关于java - 断路器模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47922096/

相关文章:

java - 以编程方式关闭 Android 设备上的 USB 存储

microservices - 微服务架构中的断路器

java - 在 OSGi DS 中请求和引用服务时,如何指定接口(interface)及其类型参数?

java - 引用的属性不是 (One|Many)ToOne : in mappedBy of

oauth-2.0 - Keycloak,客户端之间共享资源

使用 Spring 和 Netflix Stack 的 Java 微服务项目结构

java - kafka涉及微服务架构时如何实现契约测试?

spring - 在@HystrixCommand 回退方法中获取失败异常

spring-cloud - 如何直接在 @FeignClient 中定义 Hystrix Client Fallback

java - 从 ActionMode.Callback.onDestroyActionMode() 刷新 ListView