目前為止,已經搭建了簡單的微服務框架,這時我們不得不考慮,如果服務超時我們應該怎麼處理。
一、為什麼要設定超時機制
1、客戶端請求乙個服務提供者,而
1、使用resttemplate 模版,超時配置。
@enableeurekaclient
public static void
main(string args)
/*** 向程式的ioc注入乙個bean: resttemplate;並通過@loadbalanced註解表明這個restremplate開啟負載均衡的功能。
*@return
*/@bean
@loadbalanced
resttemplate resttemplate()
}這裡配置的60秒。
我們在服務端service-user(埠為9001)中使響應超時
@restcontroller這時呼叫服務:service-user 9001 則回拋超時異常。public class usercontroller ")
private string port
; public string getuser(@requestbody string say) throws interruptedexception
}
如果負載均衡之後呼叫的9002(未超時),則成功。
2、ribbon設定超時。
看原始碼可知預設超時時間為2000毫秒
1、配置檔案,配置超時時間
#請求超時
ribbon.readtimeout: 60000
#連線超時時間
這樣,60秒之後會報超時異常
以上配置資料全域性配置:可加上具體服務名稱進行區域性配置
service-user.ribbon.readtimeout:60000既在呼叫service-user服務的時候才會生效。service-user.ribbon.connecttimeout:60000
2、使用@bean配置超時
"ribbon.readtimeout」改為「service-user.ribbon.readtimeout」 既進行了區域性配置
@beanrequest.options requestoptions(configurableenvironment env)
spring cloud 實戰入門 三
服務之間的呼叫 在上面兩篇文章中,我們分別建立了註冊中心eurek和乙個服務pricing,這一單介紹服務之間的調.enableeurekaclient 用於註冊中心發現這個服務,另外這裡注意一點,這裡可以使用 enablediscoveryclient.這倆個的區別是前面的這個只能用於eureka...
SpringCloud入門實戰全系列(超詳細)
springcloudlearning lingluocloud api 構建公共子模組 hystrix服務降級 lingluocloud euraka 7001 eureka集群 lingluocloud euraka 7002 eureka集群 lingluocloud euraka 7003 ...
Spring Cloud(十二)Zuul實戰
1 建立乙個eureka server工程,專案名稱 eureka server 2 建立乙個eureka client 服務提供者 工程,專案名稱 eureka client1 工程eureka server和eureka client1 建立請參考 spring cloud 三 eureka實戰...