Hystrix Circuit Breaker 是否可以为某些端点关闭并为其他端点打开
Can Hystrix Circuit Breaker be closed for some endpoints and open for other
假设 webServiceA 正在调用 webServiceB 的 Endpoint1 和 Endpoint2。
现在 Endpoint1 开始发送错误响应,web 服务 A 正在使用 Hystrix 断路器。电路是否仅针对端点 1 或针对从 webServiceA 到 webServiceB 的所有端点处于 OPEN 状态?
Hystrix 不知道任何网络服务连接,它可以用于任何事情。例如,如果您的数据库连接速度较慢,您可以为此打开电路。
所以答案是否定的,它不会为开箱即用的所有端点打开电路。但是,您可以设置您的服务实现以这种方式运行。
例如:
@Service
public class WebServiceA {
@CircuitBreaker
public ResponseEntity<?> call(String url, String param) {
// implementation here
restTemplate.exchange("http://webserviceA/" + url, ...);
}
}
并且方法 call()
将是访问 WebServiceA
的唯一 public
访问级别方法。
假设 webServiceA 正在调用 webServiceB 的 Endpoint1 和 Endpoint2。
现在 Endpoint1 开始发送错误响应,web 服务 A 正在使用 Hystrix 断路器。电路是否仅针对端点 1 或针对从 webServiceA 到 webServiceB 的所有端点处于 OPEN 状态?
Hystrix 不知道任何网络服务连接,它可以用于任何事情。例如,如果您的数据库连接速度较慢,您可以为此打开电路。
所以答案是否定的,它不会为开箱即用的所有端点打开电路。但是,您可以设置您的服务实现以这种方式运行。
例如:
@Service
public class WebServiceA {
@CircuitBreaker
public ResponseEntity<?> call(String url, String param) {
// implementation here
restTemplate.exchange("http://webserviceA/" + url, ...);
}
}
并且方法 call()
将是访问 WebServiceA
的唯一 public
访问级别方法。