ribbon: ReadTimeout:60000 ConnectTimeout:60000 1 2 3 局部設(shè)置:
創(chuàng)新互聯(lián)專注于阿里地區(qū)網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供阿里地區(qū)營銷型網(wǎng)站建設(shè),阿里地區(qū)網(wǎng)站制作、阿里地區(qū)網(wǎng)頁設(shè)計、阿里地區(qū)網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務(wù),打造阿里地區(qū)網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供阿里地區(qū)網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。service-id: ribbon: ReadTimeout:1000 ConnectTimeout:1000 1 2 3 4
其中,service-id是Ribbon所使用的虛擬主機名,一般和EurekaServer上注冊的服務(wù)名稱一致,即:與spring.application.name一致。
Feign的超時從SpringCloudEdgware開始,F(xiàn)eign支持使用屬性配置超時:
feign: client:config: feignName: connectTimeout:5000 readTimeout:5000 1 2 3 4 5
對于老版本,可以寫個feign.Request.Options,參考:org.springframework.cloud.netflix.feign.ribbon.FeignRibbonClientAutoConfiguration#feignRequestOptions的寫法即可。
RestTemplate的超時一些時侯,我們可能使用了RestTemplate,例如
@Bean @LoadBalanced publicRestTemplaterestTemplate() { returnnewRestTemplate(); } 1 2 3 4 5 6
此時,超時可使用如下方式設(shè)置:
@Bean @LoadBalanced publicRestTemplaterestTemplate() { SimpleClientHttpRequestFactorysimpleClientHttpRequestFactory=newSimpleClientHttpRequestFactory(); simpleClientHttpRequestFactory.setConnectTimeout(1000); simpleClientHttpRequestFactory.setReadTimeout(1000); returnnewRestTemplate(simpleClientHttpRequestFactory); } 1 2 3 4 5 6 7 8 9 Zuul的超時
Zuul的超時比較復(fù)雜,因為Zuul整合了Ribbon、Hystrix。下面分兩種情況討論:
如果Zuul的路由使用了Ribbonhystrix: command: default: execution: isolation: thread: timeoutInMilliseconds:1000 ribbon: ReadTimeout:1000 ConnectTimeout:1000 1 2 3 4 5 6 7 8 9 10
代碼解析:此種情況下,Zuul轉(zhuǎn)發(fā)所使用的過濾器是org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter,在這個過濾器中,整合了Hystrix以及Ribbon。
如果Zuul的路由未使用Ribbonzuul: routes: user-route:#該配置方式中,user-route只是給路由一個名稱,可以任意起名。 url:http://localhost:8000/#指定的url path:/user/**#url對應(yīng)的路徑。 1 2 3 4 5
那么,此時Zuul的超時只與如下兩個配置有關(guān):
zuul: host: socket-timeout-millis:10000 connect-timeout-millis:2000 1 2 3 4 5
代碼解析:直接配置URL路由的方式,用不上Ribbon,也用不上Hystrix,Zuul轉(zhuǎn)發(fā)所使用的過濾器是org.springframework.cloud.netflix.zuul.filters.route.SimpleHostRoutingFilter,在這個過濾器中,Zuul使用ApacheHttpClient進行轉(zhuǎn)發(fā)。
在現(xiàn)實場景中,有時候可能兩種路由方式配合使用,因此,建議大家配置以上所有屬性。
hystrix: command: default: execution: timeout: enabled:true isolation: thread: timeoutInMilliseconds:1000 1 2 3 4 5 6 7 8 9 10
如上,Hystrix的默認(rèn)超時時間是1秒。默認(rèn)開啟超時機制。如需關(guān)閉Hystrix的超時,可將xxx.enabled設(shè)置為false。
Tips如有組件跟Hystrix配合使用,一般來講,建議Hystrix的超時>其他組件的超時,否則將可能導(dǎo)致重試特性失效。
分享標(biāo)題:SpringCloud各組件超時總結(jié)
鏈接分享:http://www.rwnh.cn/article46/cpoehg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、虛擬主機、面包屑導(dǎo)航、網(wǎng)站建設(shè)、App開發(fā)、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)