0

我正在使用 Feign Ribbon 客户端与服务交谈。我有一个客户端在功能区中配置 maxAutoRetries 后立即失败。假装或功能区中是否有“等待并重试”之类的属性,可以等待配置的时间并重试。

4

1 回答 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 回答