Zuul使用Ribbon配置自动重试

spring cloud的版本不断演进,致使不少配置的配置方式不断改变,有时某个配置在一个版本里面默认是true,后边一升级默认成了false,这点让人有点不爽。spring

言归正传spa

 

0、所使用版本code

spring cloud版本:Dalston.SR1blog

spring boot版本:1.5.4.RELEASE源码

 

步骤以下:it

一、在配置文件中添加如下关键内容:io

spring: cloud: loadbalancer: retry: # 听说ribbon重试默认已经开启 enabled: true zuul: #  重试必配,听说在Brixton.SR5版的spring cloud中该配置默认是true,结果在Dalston.SR1中看到的是false retryable: true ribbon: # ribbon重试超时时间 ConnectTimeout: 250
# 创建链接后的超时时间 ReadTimeout: 1000
# 对全部操做请求都进行重试 OkToRetryOnAllOperations: true # 切换实例的重试次数 MaxAutoRetriesNextServer: 2
# 对当前实例的重试次数 MaxAutoRetries: 1 eureka: enable: true

 

注意:class

若是想指定某个路径的重试的开启和关闭,能够配置zuul.routes.<route>.retryable的false和true配置

 

二、在pom中引入以下内容:route

<dependency>
            <groupId>org.springframework.retry</groupId>
            <artifactId>spring-retry</artifactId>
        </dependency>

以支持:org.springframework.retry.support.RetryTemplate,进而初始化ribbon的重试策略,缘由以下图源码所示,注意其中的@ConditionalOnClass

 

 

三、重试好像(尴尬脸)不会跨zone 

 

 完毕

相关文章
相关标签/搜索