1. 程式人生 > 實用技巧 >SpringCloud - Hystrix 服務熔斷器

SpringCloud - Hystrix 服務熔斷器

背景1. 什麼是服務雪崩?

背景2. 什麼是服務熔斷?

1. 什麼是Hystrix? 有什麼用?

2. Hystrix服務熔斷(在服務端做異常處理)

2.1 引入依賴

2.2 @HystrixCommand 引入服務熔斷時的備選方法

依然會通過hystrixGet()返回一個“格式正確”的結果,只不過結果裡的data是假的,是提示使用者當前發生了錯誤。

2.3 在主函式開啟對斷路器的支援

circuit(電路) breaker -- 斷路器

3. Hystrix服務降級(在客戶端做異常處理)

服務降級的例子:淘寶在雙11當晚的時候,當你需要“退款”,會提示你“退款服務暫時不可用...”。
就是因為當晚“購買”功能的流量太大,資源不夠,因此需要把“退款”功能關掉,資源給“購買”功能。

關閉後,當請求流向“退款”功能,就會顯示客戶端(前端)設定好的預設訊息“退款服務暫時不可用...”
這就是“服務降級” -- 原本應該提供真實的“退款服務”,如今變成了一條“預設訊息”而已。

3.1 編寫FallbackFactory

三個provider module會引用 api module:

3.2 開啟服務降級

要在feign的專案裡配置

3.3 服務降級效果

4. 服務熔斷 vs 服務降級(重點)

服務降級的例子:淘寶在雙11當晚的時候,當你需要“退款”,會提示你“退款服務暫時不可用...”。
就是因為當晚“購買”功能的流量太大,資源不夠,因此需要把“退款”功能關掉,資源給“購買”功能。

關閉後,當請求流向“退款”功能,就會顯示客戶端(前端)設定好的預設訊息“退款服務暫時不可用...”
這就是“服務降級” -- 原本應該提供真實的“退款服務”,如今變成了一條“預設訊息”而已。

5. Hystrix DashBoard視覺化監控面板

一目瞭然的監控多個微服務的狀態:綠色的表示安全,黃色的表示有超時現象,紅色的表示失敗

5.1 寫一個dashboard監控頁面:匯入依賴

新建dashboard module,需要新匯入:

5.2寫一個dashboard監控頁面:application.yml配置埠號9001

5.3寫一個dashboard監控頁面:通過註解開啟功能

5.4 被監控的服務提供者,需增加一個servlet bean

service provider module需要保證有這個監控依賴:

5.5 使用Hystrix DashBoard

5.5.1 七個顏色的含義

5.5.2 圓圈的含義

5.5.3 折線圖的含義