springcloud超時機制

2022-07-21 05:00:14 字數 2595 閱讀 9511

springcloud中有很多超時時間配置,總結一下各處超時時間的使用及配置。

hystrix:

command:

default:

execution:

isolation:

thread:

timeoutinmilliseconds: 100000 #命令執行超時時間,預設1000ms,應大於ribbon超時時間

ribbon:

readtimeout: 60000

connecttimeout: 3000

此種情況下,zuul**所使用的過濾器是org.springframework.cloud.netflix.zuul.filters.route.ribbonroutingfilter ,在這個過濾器中,整合了hystrix以及ribbon。

不使用service discovery,直接使用url(不常用),使用zuul.host.connect-timeout-millis 和 zuul.host.socket-timeout-millis

zuul:

routes:

user-route: # 該配置方式中,user-route只是給路由乙個名稱,可以任意起名。

url: # 指定的url

path: /user/** # url對應的路徑

處。zuul:

host:

socket-timeout-millis: 10000

connect-timeout-millis: 2000

全域性設定

ribbon:

connecttimeout: 3000

readtimeout: 60000

根據service-id進行設定,不同service-id設定不同的引數

service-id:xcloud-dataservice

ribbon:

connecttimeout: 3000

readtimeout: 60000

hystrix:

command:

default:

execution:

timeout:

enabled: true

isolation:

thread:

timeoutinmilliseconds: 1000

從spring cloud edgware開始,feign支援使用屬性配置超時,預設connecttimeout:10000,readtimeout: 60000:

feign:

client:

config:

feignname:

connecttimeout: 10000

readtimeout: 60000

老版本,可以重寫feign.request.options ,參考:org.springframework.cloud.netflix.feign.ribbon.feignribbonclientautoconfiguration#feignrequestoptions 的寫法即可。

如下,啟動類加上註解@import(feignconfiguration.class)即可。

@configuration

public class feignconfiguration

@bean

request.options feignoptions()

@bean

@primary

@scope("prototype")

public encoder multipartformencoder()

@bean

public logger.level feignloggerlevel()

@bean

public errordecoder errordecoder()

}

@bean

@loadbalanced

public resttemplate resttemplate()

ribbon.eureka.enabled = true

ribbon.nfloadbalancerruleclassname=com.netflix.loadbalancer.randomrule

ribbon.maxautoretries=1

ribbon.maxautoretriesnextserver=2

ribbon.connecttimeout=3000

ribbon.readtimeout=100000

根據如上配置,當訪問到故障請求的時候,它會再嘗試訪問一次當前例項(次數由maxautoretries配置),如果不行,就換乙個例項進行訪問,如果還是不行,再換一次例項訪問(更換次數由maxautoretriesnextserver配置),如果依然不行,返回失敗資訊。如果在此期間達到hystrix的超時時間,則返回fallback內容。

Spring Cloud 實戰三 超時機制

目前為止,已經搭建了簡單的微服務框架,這時我們不得不考慮,如果服務超時我們應該怎麼處理。一 為什麼要設定超時機制 1 客戶端請求乙個服務提供者,而 1 使用resttemplate 模版,超時配置。enableeurekaclient public static void main string a...

RPC超時機制

linux下rpc支援簡單的超時重傳機制,採用了固定超時時間間隔和固定重試次數。當rpc服務傳送乙個報文時 對應一次遠端過程呼叫 它便啟動乙個定時器 如果定時器在遠端過程呼叫應答到達前期滿,rpc服務便重發請求。程式設計師可以為某個給定應用調整超時時間間隔以及重試次數,但無法自適應。這種簡單機制無法...

haproxy 超時機制

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!code class python option redispatch option redispatch 是否允許重新分配在session 失敗後 option abortonclose 丟棄由於客戶端等待時間過長而關閉連線但仍在haproxy等...