我正在使用Feign Ribbon客户端与服务进行通信。 我有一个客户端在功能区中配置maxAutoRetries后立即失败。是否存在假装或带状的属性,如“等待和重试”,可以等待配置的时间并重试。
答案 0 :(得分:0)
您可以为此目的定义Retryer
Bean。
@Configuration
public class RetryConfiguration {
@Bean
public Retryer retryer() {
// default retryer will retry 5 times waiting waiting
// 100 ms per retry with a 1.5* back off multiplier
return Retryer.Default();
}
}
如果您的需求与默认需求不同,则可以创建自己的Retryer
实施。
定义后,在任何RetryableException
次呼叫期间抛出Feign
时,将使用此重试配置。您可能还需要注册ErrorDecoder
以确保来自您的端点的响应被正确包装:
public class MyErrorDecoder implements ErrorDecoder {
@Override
public Exception decode(String methodKey, Response response) {
// handle the error, wrap and return
return new RetryableException(exception);
}
}
@Bean
public ErrorDecoder errorDecoder() {
return new MyErrorDecoder();
}