SpringCloud - Hystrix 服務熔斷器
阿新 • • 發佈:2020-12-12
背景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需要保證有這個監控依賴: