问题描述
让我们说webServiceA正在调用webServiceB的Endpoint1和Endpoint2。
现在Endpoint1开始发送错误响应,并且Web服务A正在使用Hystrix断路器。对于Endpoint1还是从webServiceA到webServiceB的所有端点,电路是否都将处于OPEN状态?
解决方法
Hystrix不知道任何Web服务连接,它可以用于任何东西。例如,如果数据库连接速度较慢,则可以为此断开电路。
因此答案是否定的,它不会为所有端点打开电路。但是,您可以将服务实现设置为以这种方式运行。
例如:
@Service
public class WebServiceA {
@CircuitBreaker
public ResponseEntity<?> call(String url,String param) {
// implementation here
restTemplate.exchange("http://webserviceA/" + url,...);
}
}
方法call()
将是访问public
的唯一WebServiceA
访问级别方法。