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.頁面展示: