我正在使用 Feign Ribbon 客户端与服务交谈。我有一个客户端在功能区中配置 maxAutoRetries 后立即失败。假装或功能区中是否有“等待并重试”之类的属性,可以等待配置的时间并重试。
问问题
1885 次
1 回答
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
期间抛出a 时将使用此重试配置。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();
}
于 2018-04-25T17:59:35.697 回答