Spring Cloud 實戰三 超時機制

2021-08-20 13:46:35 字數 1692 閱讀 4602

目前為止,已經搭建了簡單的微服務框架,這時我們不得不考慮,如果服務超時我們應該怎麼處理。

一、為什麼要設定超時機制

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

public class usercontroller ")

private string port

; public string getuser(@requestbody string say) throws interruptedexception

}

這時呼叫服務:service-user 9001 則回拋超時異常。

如果負載均衡之後呼叫的9002(未超時),則成功。

2、ribbon設定超時。

看原始碼可知預設超時時間為2000毫秒

1、配置檔案,配置超時時間

#請求超時

ribbon.readtimeout: 60000

#連線超時時間

這樣,60秒之後會報超時異常

以上配置資料全域性配置:可加上具體服務名稱進行區域性配置

service-user.ribbon.readtimeout:60000

service-user.ribbon.connecttimeout:60000

既在呼叫service-user服務的時候才會生效。

2、使用@bean配置超時

"ribbon.readtimeout」改為「service-user.ribbon.readtimeout」 既進行了區域性配置

@bean

request.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實戰...