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 

 

 完畢

相關文章
相關標籤/搜索