Feign Client的超時時間

2022-07-16 15:00:12 字數 2040 閱讀 5502

spring cloud微服務架構中,大部分公司都是利用open feign進行服務間的呼叫,而比較簡單的業務使用預設配置是不會有多大問題的,但是如果是業務比較複雜,服務要進行比較繁雜的業務計算,那後台很有可能會出現read timeout這個異常,因此定製化配置超時時間就有必要了。

# 預設開啟

# 預設關閉

# 預設關閉

feign.hystrix.enabled=false

# 預設關閉

feign.sentinel.enabled=true

# default context 連線超時時間

feign.client.config.default.connecttimeout = 5000

# default context 讀超時時間

feign.client.config.default.readtimeout = 10000

# 設定重試處理器,預設直接丟擲異常

# feign.client.config.default.retryer = class# 設定日誌級別,預設none

# feign.client.config.default.loggerlevel = full

# 全域性設定超時:

hystrix.command.default.execution.isolation.thread.timeoutinmilliseconds: 30000

hystrix在ribbon的外層處理。

# 連線超時時間,預設為1秒,該值會被feignclient配置connecttimeout覆蓋

ribbon.connecttimeout=5000

# 讀超時時間,預設為1秒,該值會被feignclient配置readtimeout覆蓋

ribbon.readtimeout=5000

# 最大重試次數

ribbon.maxautoretries=1

當ribbon呼叫介面傳送連線異常或者超時異常時會觸發ribbon 的重試機制。

所設定的連線時間和超時時間最後會動態設定到okhttpclient中,最底層也就是socket的連線時間和讀超時時間。也就是說,直接配置okhttpclient是無效的。

解決方案:新增okhttp client的請求interceptor,動態設定超時時間。

1.如何配置好hystrixribbon的超時時間呢?

其實是有套路的,因為feign的請求:其實是hystrix+ribbonhystrix在最外層,然後再到ribbon,最後裡面的是http請求。所以說。hystrix的熔斷時間必須大於ribbon的 (connecttimeout+readtimeout)。而如果ribbon開啟了重試機制,還需要乘以對應的重試次數,保證在ribbon裡的請求還沒結束時,hystrix的熔斷時間不會超時。

feign的各種超時時間

Feign Client 超時時間配置

在spring boot微服務架構中,大部分公司都是利用open feign進行服務間的呼叫,而在業務場景比較簡單的時候,使用預設配置是不會遇到多大問題的。但是如果業務比較複雜,服務要進行比較繁雜的業務計算,那後台很有可能會出現read timeout這個異常,因此定製化配置超時時間就有必要了。影響...

Python requests請求的超時時間

一種解決方案是全域性設定 import socket socket.setdefaulttimeout t 另外一種解決方案是 使用timeout 引數可以設定等待連線的秒數,如果等待超時,requests會丟擲異常 第三種 max retries為最大重試次數,重試3次,加上最初的一次請求,一共是...

超時時間 Session

在web.xml裡的配置 單位分鐘 1 23 4 session config 5 session timeout 15 session timeout 6session config 7.89 view code 在配置servlet的時候指定初始化引數決定超時時間 單位秒 1 servlet 2...