Feign Client 超時配置

Feign 的調用,總共分爲兩層,即 Ribbon 的調用和 Hystrix(熔斷處理) 的調用,高版本的 Hystrix 默認是關閉的。git

Ribbon 超時配置github


  若是出現上圖的信息,說明是 Ribbon 超時了,須要在配置文件中進行控制處理:spring

### Ribbon 配置
ribbon:
  # 鏈接超時
  ConnectTimeout: 2000
  # 響應超時
  ReadTimeout: 5000
1
2
3
4
5
6
Hystrix 超時配置
開啓 Hystrix
### Feign 配置
feign:
  # 開啓斷路器(熔斷器)
  hystrix:
    enabled: true



  此時,若是超時,彙報一下錯誤:併發

  默認 Hystrix 超時配置:ui

  爲了不超時,咱們能夠根據業務狀況來配置本身的超時時間,此處配置熔斷時間爲:5000/毫秒。注意:建議 Ribbon 的超時時間不要大於 Hystrix 的超時時間.net

### Hystrix 配置
hystrix:
  # 這樣將會自動配置一個 Hystrix 併發策略插件的 hook,這個 hook 會將 SecurityContext 從主線程傳輸到 Hystrix 的命令。
  # 由於 Hystrix 不容許註冊多個 Hystrix 策略,因此能夠聲明 HystrixConcurrencyStrategy
  # 爲一個 Spring bean 來實現擴展。Spring Cloud 會在 Spring 的上下文中查找你的實現,並將其包裝在本身的插件中。
  shareSecurityContext: true
  command:
    default:
      circuitBreaker:
        # 當在配置時間窗口內達到此數量的失敗後,進行短路。默認20個
        requestVolumeThreshold: 1
        # 觸發短路的時間值,當該值設爲5000時,則當觸發 circuit break 後的5000毫秒內都會拒絕request
        # 也就是5000毫秒後纔會關閉circuit。默認5000
        sleepWindowInMilliseconds: 15000
        # 強制打開熔斷器,若是打開這個開關,那麼拒絕全部request,默認false
        forceOpen: false
        # 強制關閉熔斷器 若是這個開關打開,circuit將一直關閉且忽略,默認false
        forceClosed: false
      execution:
        isolation:
          thread:
            # 熔斷器超時時間,默認:1000/毫秒
            timeoutInMilliseconds: 5000
源碼:https://github.com/SlowSlicing/demo-spring-cloud-finchley/tree/FeignClientTimeoutConfiguration
--------------------- 插件

 

https://blog.csdn.net/wo18237095579/article/details/83348496線程

https://blog.csdn.net/sinat_41620463/article/details/81533684blog

相關文章
相關標籤/搜索