假装功能区客户端等待并重试



我正在使用Feign Ribbon客户端与服务通信。我有一个客户端在功能区中配置最大自动重试后立即失败。假装或功能区中是否有属性,例如"等待并重试",可以等待配置的时间并重试。

您可以为此目的定义一个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实现。

定义后,在任何Feign调用期间引发RetryableException时,将使用此重试配置。 您可能还需要注册一个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();
}

相关内容

  • 没有找到相关文章

最新更新