Feign 重试是否需要某种配置?

Does Feign retry require some sort of configuration?

我刚刚尝试在测试设置中尝试无缝升级服务。 Feign 客户端正在访问该服务。天真地,我的印象是,如果服务有多个可用实例,客户端会在无法连接到一个实例时重试另一个实例。

然而,这并没有发生。但是我找不到任何关于 Feign in Spring Cloud 应该如何配置来执行此操作的提及?尽管我看到有人提到它支持它(而不是使用 RestTemplate,你会使用类似 Spring Retry?)

如果您使用的是功能区,则可以设置类似于以下的属性(将 "localapp" 替换为您的 serviceid):

localapp.ribbon.MaxAutoRetries=5
localapp.ribbon.MaxAutoRetriesNextServer=5
localapp.ribbon.OkToRetryOnAllOperations=true

看看 属性 是否有效 - OkToRetryOnAllOperations: true

您可以参考申请-> https://github.com/spencergibb/spring-cloud-sandbox/blob/master/spring-cloud-sandbox-sample-frontend/src/main/resources/application.yml

Spencer 很快...迟到了几分钟:-)

psFeign下面有一个Retryer接口,用来支持Ribbon之类的东西。

https://github.com/Netflix/feign/blob/master/core/src/main/java/feign/Retryer.java