Hystrix Circuit Breaker 是不是可以为某些端点关闭而为其他端点打开

Posted

技术标签:

【中文标题】Hystrix Circuit Breaker 是不是可以为某些端点关闭而为其他端点打开【英文标题】:Can Hystrix Circuit Breaker be closed for some endpoints and open for otherHystrix Circuit Breaker 是否可以为某些端点关闭而为其他端点打开 【发布时间】:2021-01-10 23:35:18 【问题描述】:

假设 webServiceA 正在调用 webServiceB 的 Endpoint1 和 Endpoint2。

现在 Endpoint1 开始发送错误响应,并且 Web 服务 A 正在使用 Hystrix 断路器。电路是否仅针对 Endpoint1 或从 webServiceA 到 webServiceB 的所有端点处于 OPEN 状态?

【问题讨论】:

【参考方案1】:

Hystrix 不知道任何网络服务连接,它可以用于任何事情。例如,如果您的 DB 连接速度较慢,您可以为此打开电路。

所以答案是否定的,它不会为所有端点开箱即用。但是,您可以将服务实现设置为以这种方式运行。

例如:

@Service
public class WebServiceA 

  @CircuitBreaker
  public ResponseEntity<?> call(String url, String param) 
     // implementation here
     restTemplate.exchange("http://webserviceA/" + url, ...);
  


方法call() 将是唯一访问public 访问级别的方法WebServiceA

【讨论】:

以上是关于Hystrix Circuit Breaker 是不是可以为某些端点关闭而为其他端点打开的主要内容,如果未能解决你的问题,请参考以下文章

Building Microservices with Spring Cloud - Fault tolerance Circuit breaker

Hystrix熔断原理

Hystrix熔断原理

Circuit Breaker Pattern(断路器模式)

Circuit Breaker Features

Circuit Breaker模式