初識服務降級、熔斷、限流Hystrix

Hystrix官網:

github.com/Netflix/Hystrix/wiki/How-To-Use

Hystrix主要功能:服務降級 fallback、服務熔斷 break、服務限流  flowlimit、接近實時的監控

一:服務降級 fallback,報錯或者有問題,立即返回客戶端一個提示。hystrix消費端、提供端都可以添加,一般放到消費端

1.爲什莫要有服務降級:

 

2.思路和注意重點:

3.提供者8001具體做法: 

4.消費者 80操作實例,和提供者做法一摸一樣,只是以後常在消費者這樣實現:

 

5.當前存在問題:

 6.解決方法:配置一個默認的兜底方法,如果方法A使用了@HystrixCommand,裏面沒有再指定具體的fallback方法,當A出錯時,自動走@DefaultProperties(de...)配置的兜底方法。

 下圖中,paymentInfo_error()方法出錯,走的是自定義的兜底方法,不是全局的兜底方法,因爲@HystrixCommand裏面有指定具體的fallback方法,如果沒有具體指定,則會走全局兜底方法。

7.另外一種解決方法    通配服務降級:1).寫個類PaymentFallBacService,實現消費者要調用的service,類中是所有方法的兜底方法,2).調用PaymentHystrixService中的方法時,註解中如下圖配置:

 

二:服務熔斷 break

 

1.熔斷狀態

 

2.直接上代碼

 

3.HystrixCommandProperties中具體配置的參數總結:

 

 

服務熔斷,本例中10s之內調用某個接口10次,失敗率達到60%就跳閘,此時熔斷打開,不能再調用當前服務,如果繼續調用,則會進入到兜底方法中,即使正確調用也會進入到兜底方法;等到熔斷打開時長達到設置的時間窗口器的時間,就會進入到半熔斷狀態,直到熔斷關閉,此時不會對服務進行熔斷。 

三:服務監控 hystrixDashbrod    (需要專門寫個監控服務9001,對8001進行監控):

1.

 2.監控服務9001,很簡單,只是一個啓動類添加@EnableHystrixDashbord開啓實時監控:

3.8001  啓動類修改如下: 

 4.頁面展示:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章