1、Zuul网关配置重试
网关作为后端服务的统一入口,在集群情况下可添加重试,在其中一个实例出现阻塞的情况下可路由到其他的实例,实现服务的高可用
1、添加依赖
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
2、添加配置
zuul:
retryable: true
ribbon:
#每台服务器最多重试次数,但是首次调用不包括在内
MaxAutoRetries: 0
#最多重试多少台服务器
MaxAutoRetriesNextServer: 4
2、Fegin重试
Fegin作为服务间调用的工具,通过服务名进行调用,在被调用的服务存在多实例的情况下也可以添加重试
feign:
hystrix:
enabled: true
ribbon:
OkToRetryOnAllOperations: true #对所有操作请求都进行重试,默认false
ReadTimeout: 5000 #负载均衡超时时间,默认值5000
ConnectTimeout: 4000 #ribbon请求连接的超时时间,默认值2000
MaxAutoRetries: 0 #对当前实例的重试次数,默认0
MaxAutoRetriesNextServer: 1 #对切换实例的重试次数,默认1
hystrix:
command:
default: #default全局有效,service id指定应用有效
execution:
timeout:
#如果enabled设置为false,则请求超时交给ribbon控制,为true,则超时作为熔断根据
enabled: true
isolation:
thread:
timeoutInMilliseconds: 7000 #断路器超时时间,默认1000ms