前言
Feign组件默认使用Ribbon的重试机制并增加了根据状态码判断重试机制,默认情况下是不启用的。Feign使用的是Spring Retry组件,需要引入依赖才能启用。
一、POM引入Spring Retry
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
二、配置文件
eureka-client:
ribbon:
MaxAutoRetries: 1
MaxAutoRetriesNextServer: 1
retryableStatusCodes: 500,404
OkToRetryOnAllOperations: true
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.AvailabilityFilteringRule #负载均衡规则
eureka-client
是自己的serverId,MaxAutoRetries
同一台服务器上的最大重试次数(不包括第一次尝试),MaxAutoRetriesNextServer
要重试的下一个服务器的最大数量(不包括第一个服务器),retryableStatusCodes
可以根据接口返回的状态码判断是否重试其他服务,OkToRetryOnAllOperations