当前位置: 首页 > 知识库问答 >
问题:

断路器模式

经骁
2023-03-14

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

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

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

共有1个答案

袁文景
2023-03-14

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

  1. 返回类型必须相同或协变
 类似资料:
  • 注:本节未经校验,如有问题欢迎提issue 为什么使用它们? 线路断路器用于提供稳定性并防止在分布式系统中的级联故障。它们应该结合在远程系统之间的接口使用明智的超时,以防止单个组件的故障拖垮所有组件。 作为一个例子,我们有一个web 应用程序与远程的第三方web服务进行交互。假如第三方已用完了他们的容量,他们的数据库也在高荷载作用下熔化。假设数据库在这种情况下失败,第三方 web 服务用了很长的时

  • 我有两个服务A和B,以这种方式向第三个服务C发起请求:A->C和B->C C使用Istio配置,该Istio具有配置了断路器模式(异常检测)的目的地规则。当C以一系列连续的5xx错误响应时,断路器断开,从这时开始,接收到一个503服务不可用。 在对C的调用中,我使用一个查询参数来指示是否要模拟错误500。 我以为一旦电路打开,它对所有的呼叫都打开了,不管是从哪里开始的,但是当B用标志来模拟错误50

  • 在一个节点失败的情况下,断路器可以避免这个错误影响其他服务,以免出现雪崩的情况。查看断路器的详细介绍: Pattern: Circuit Breaker. 客户端通过断路器调用服务, 一旦连续的错误达到一个阈值,断路器就会断开进行保护,这个时候如果还调用这个节点的话,直接就返回错误。等一定的时间,断路器会处于半开的状态,允许一定数量的请求尝试发送这个节点,如果正常访问,断路器就处于全开的状态,否则

  • 我正在尝试春云和春靴。它使用了Netflix的OSS应用程序,其中有Ribbon和Hystrix。 Ribbon是一个负载均衡器,带有一些功能,其中一个是断路器。

  • 我在我的spring boot应用程序中使用Hystrix实现断路器,我的代码如下所示: 我看到每次失败时都会调用fallback()。但3次故障后电路不开。在3次失败之后,我原以为它会直接调用并跳过。但这并没有发生。有人能告诉我我在这里做错了什么吗? 谢谢,B Jagan 下面是实际代码。我用这个玩得更远了。当我在RegistrationHystrix.RegisterSeller()方法中直接