【问题标题】:How to disable Feign's auto retry logic如何禁用 Feign 的自动重试逻辑
【发布时间】:2019-03-28 14:23:25
【问题描述】:

正如Feign的文档中提到的,默认情况下会自动重试IOExceptions。

我们的项目中有一些 retry 逻辑,我想阻止 Feign 的。有什么简单的方法可以禁用它吗?还是应该写我自己的重试器?

我们正在使用 Spring Cloud 的开放 feign 库。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

【问题讨论】:

    标签: spring-cloud-feign feign


    【解决方案1】:

    如果您希望更改默认重试行为,您需要提供自己的Retryer。它可以直接应用于 Feign.builder 或通过将其注册为 Bean。无论哪种方式,您都必须实现feign.Retryer 接口。

    【讨论】:

      【解决方案2】:

      至少从版本 spring-cloud-starter-openfeign 2.2.6 开始,您无需执行任何操作。 Spring 禁用 FeignClientsConfiguration 中的重试。所以 Feign 不会对 IOException 进行重试。

          @Bean
          @ConditionalOnMissingBean
          public Retryer feignRetryer() {
              return Retryer.NEVER_RETRY;
          }
      

      顺便说一句,除了IOException之外的Feign级别的异常是不可能重试的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-16
        • 2019-05-25
        • 2017-03-21
        相关资源
        最近更新 更多