Spring Cloud--Hystrix服務熔斷(線程隔離/服務降級)代碼實現


一旦服務阻塞就進行服務降級或線程隔離。要不然就會導致大面積服務的癱瘓,Hystrix就是干這個的,一出現不健康的服務就進行熔斷,不阻塞后面線程的執行。


引入依賴:

加注解:

這三個注解可以用一個注解搞定:

當出現服務阻塞時,調用下面的方法:

將注解加在類上,進行統一處理,不然的話,每個方法上都要添加如上這段內容,太臃腫:

defaultFallback指向的通用方法是:

類上添加@DefaultProperties注解指定默認的熔斷處理方法后,只需要在方法上添加@HystrixCommand注解即可:

 可以通過@HystrixCommand注解設置服務的超時時間,超過設定的時間才會觸發熔斷機制,框架默認配置的超時時間是1000ms毫秒:

也可以在配置文件中配置全局的超時時間屬性,比如將默認的1秒配置為3秒,整個項目都通用:

 這樣默認的超時時間是3秒,如果某個方法要自定義超時時間就使用上面注解的方式。

這個default可以換成服務名稱或方法名稱,就只對指定的服務或方法起作用。


模擬服務超時場景:

 線程隔離在我們進行代碼配置的時候就已經在底層實現了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM