springcloud中有很多超時時間配置,總結一下各處超時時間的使用及配置。
此種情況下,zuul**所使用的過濾器是org.springframework.cloud.netflix.zuul.filters.route.ribbonroutingfilter ,在這個過濾器中,整合了hystrix以及ribbon。hystrix:
command:
default:
execution:
isolation:
thread:
timeoutinmilliseconds: 100000 #命令執行超時時間,預設1000ms,應大於ribbon超時時間
ribbon:
readtimeout: 60000
connecttimeout: 3000
不使用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
根據service-id進行設定,不同service-id設定不同的引數ribbon:
connecttimeout: 3000
readtimeout: 60000
service-id:xcloud-dataservice
ribbon:
connecttimeout: 3000
readtimeout: 60000
從spring cloud edgware開始,feign支援使用屬性配置超時,預設connecttimeout:10000,readtimeout: 60000:hystrix:
command:
default:
execution:
timeout:
enabled: true
isolation:
thread:
timeoutinmilliseconds: 1000
老版本,可以重寫feign.request.options ,參考:org.springframework.cloud.netflix.feign.ribbon.feignribbonclientautoconfiguration#feignrequestoptions 的寫法即可。feign:
client:
config:
feignname:
connecttimeout: 10000
readtimeout: 60000
如下,啟動類加上註解@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()
根據如上配置,當訪問到故障請求的時候,它會再嘗試訪問一次當前例項(次數由maxautoretries配置),如果不行,就換乙個例項進行訪問,如果還是不行,再換一次例項訪問(更換次數由maxautoretriesnextserver配置),如果依然不行,返回失敗資訊。如果在此期間達到hystrix的超時時間,則返回fallback內容。ribbon.eureka.enabled = true
ribbon.nfloadbalancerruleclassname=com.netflix.loadbalancer.randomrule
ribbon.maxautoretries=1
ribbon.maxautoretriesnextserver=2
ribbon.connecttimeout=3000
ribbon.readtimeout=100000
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等...