SpringCloud失败重试配置

386 阅读1分钟

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