Hystrix熔斷器

帶錯誤的請求可以立馬中斷並返回錯誤信息

1:每次調用創建一個新的HystrixCommand,把依賴調用封裝在run()方法中.

  2:執行execute()/queue做同步或異步調用.

  4:判斷熔斷器(circuit-breaker)是否打開,如果打開跳到步驟8,進行降級策略,如果關閉進入步驟5.

  5:判斷線程池/隊列/信號量是否跑滿,如果跑滿進入降級步驟8,否則繼續後續步驟6.

  6:調用HystrixCommand的run方法.運行依賴邏輯

  6a:依賴邏輯調用超時,進入步驟8.

  7:判斷邏輯是否調用成功

  7a:返回成功調用結果

  7b:調用出錯,進入步驟8.

  8:計算熔斷器狀態,所有的運行狀態(成功, 失敗, 拒絕,超時)上報給熔斷器,用於統計從而判斷熔斷器狀態.

  9:getFallback()降級邏輯.以下四種情況將觸發getFallback調用:

    (1):run()方法拋出非HystrixBadRequestException異常。

    (2):run()方法調用超時

    (3):熔斷器開啓攔截調用

    (4):線程池/隊列/信號量是否跑滿

  9a:沒有實現getFallback的Command將直接拋出異常

  9b:fallback降級邏輯調用成功直接返回

  9c:降級邏輯調用失敗拋出異常

  10:返回執行成功結果

集成Hystrix熔斷器

一 添加依賴:

<!-- 容錯保護機制 (調請求發生異常時進行處理) -->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>

</dependency>

 

二 在啓動類添加註解@EnableHystrix

 

三 在Controller方法上加上註解:

@HystrixCommand(fallbackMethod="error")

當方法調用失敗後調用error方法(error方法需要自定義)

 

四 編寫error方法

 

五 斷路器的監控

·添加依賴:

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-actuator</artifactId>

</dependency>

·在啓動類添加註解@EnableHystrixDashboard

·完成後瀏覽器輸入 http://ip:端口/hystrix.stream進入監控界面

發佈了19 篇原創文章 · 獲贊 1 · 訪問量 3477
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章