feign服務期間呼叫超時解決辦法

2021-10-06 04:16:34 字數 1102 閱讀 3283

今天偶然發現專案中的乙個定時任務會出現服務呼叫超時的情況(由於是虛擬機器開發環境,cpu效率比較低,呼叫執行時長超過1s),開始以為是feign的懶載入造成的,然後配置了飢餓載入的方式:6.9 caching of ribbon configuration

在yml配置檔案中新增:

ribbon

:eager-load

:enabled

:true

clients

: client1, client2, client3 # 服務提供的servicename

feign

:client

:config

:default

:connecttimeout

:3000

#單位毫秒

readtimeout

:12000

#單位毫秒

結果發現熔斷超時了,然後又配置了hystrix:

hystrix

:command

:default

:execution

:timeout

:enabled

:true

#是否開啟熔斷超時

isolation

:thread

:timeoutinmilliseconds

:10000

#單位毫秒

新增完以上配置超時問題解決。具體引數請根據自身業務情況配置…

附加其他超時配置,請自行除錯:

# 設定ribbon超時時間

ribbon

:readtimeout

:5000

connecttimeout

:2000

注:feign的超時時長應根據ribbon的超時時間和hystrix的超時時間配置,即可理解為:

feign timeout = ribbon timeout + hystrix timeout

服務呼叫Feign

org.springframework.cloud spring cloud starter openfeign enablefeignclients建立client包 feignclient註解用於指定從哪個服務中呼叫功能 名稱與被呼叫的服務名保持一致。pathvariable註解一定要指定引數名...

Feign解決服務之間呼叫傳遞token

現在的微服務基本就是springsecurity oauth2做的授權和認證,假如多個服務直接要通過fegin來呼叫,會報錯401 a 有做許可權處理的服務介面直接呼叫會造成呼叫時出現http 401未授權的錯誤,繼而導致最終服務的http 500內部伺服器錯誤 b 解決方式 最方便的就是往請求頭里...

SpringCloud 服務呼叫 Feign

這節我們來實現下服務呼叫,之前在ribbon中實現的時候,發現呼叫其他的服務還是需要通過resttemplate來呼叫,現在既然所有的服務都註冊到了springcloud中,那麼我們是否有其他的方式呢。springcloud提供了feign,直接通過服務名稱和對應介面進行呼叫,這樣,就像呼叫專案自己...