Hystrix 服務快速失敗概念講解與實操(二)
1. 前言
在上述小節中,我們對 Hystrix 中基本的服務快速失敗做了詳細的介紹,通過對上述小節的學習,我們可以對基本的服務快速失敗有所了解。Hystrix 還為我們提供了另一種實現方式的服務快速失敗機制,那就是斷路器版本。
在本節中,我將針對斷路器版本的服務快速失敗之概念做詳細介紹,同時也會對 Hystrix 所提供的熔斷思想做進一步的介紹,讓我們繼續來學習服務快速失敗吧。
本節主要內容:
-
服務快速失敗之服務熔斷機制;
-
Hystrix 應用熔斷思想介紹。
2. 服務快速失敗之服務熔斷機制
服務熔斷機制的服務快速失敗所實現的目標,和我們在上述小節中所介紹的普通的服務快速失敗所實現的目標相同,都是為了保證,在某一微服務發生故障時,不影響后續微服務的正常運行。

在上述小節中,各位同學已經對什么是雪崩效應有所了解,如上圖所示,我們所講的服務熔斷也是為了避免和解決雪崩現象的發生,只不過所采用的手段不同而已,那么接下來,就讓我們來看一下基于服務熔斷機制的服務快速失敗的概念是什么吧。
針對服務熔斷機制,我們先來介紹什么是熔斷?
熔斷這一名詞,其實不是來源于計算機相關專業,而是來源于電子工程相關專業。熔斷的核心是斷路器,對于斷路器來說,我們可以將斷路器理解為一根保險絲,在日常生活中,當我們家庭用電超過負載時,保險絲就會迅速燒斷,阻止由于電流過大而燒毀整個家庭電路。
同樣地,熔斷我們也可以像保險絲那樣理解,即在計算機相關領域中,由于中斷上游的故障服務,而保全整體的服務的措施就被稱為熔斷,而實現中斷上游的故障服務所采取的核心措施就是我們的斷路器。
服務熔斷機制就是把這些概念都統一起來,然后封裝到 Hystrix 中,且最終應用于我們的微服務項目中間,通過配置斷路器,來保全我們整體的微服務項目,這就是 Hystrix 所提供的服務熔斷機制。
Tips:
1. 在實際工作中,我們需要靈活的去配置微服務項目中,各個領域的微服務所對應的斷路器配置,包括間隔時間、持續時間等關鍵屬性,切記不要憑感覺去配置;
2. Hystrix 本身所提供的服務熔斷機制并不是很好用,往往需要我們在項目中集成其他的微服務服務中間件來一起集成使用,單獨使用 Hystrix 服務熔斷機制的項目很少見。
3. Hystrix 應用熔斷思想介紹
要想真正的實現服務熔斷機制,我們需要在項目中集成 Open Feign 或其他微服務遠程調用組件,來結合 Hystrix 實現,所以,在這里我們只介紹在 Hystrix 中如何簡單的使用服務熔斷機制,以及其中所包含的使用思想。
在 Hystrix 中使用服務熔斷機制
我們還是以 hello 方法為例,首先在項目中啟用 Hystrix 。
@SpringBootApplication
@EnableHystrix
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
接著,我們繼續在項目啟動類中添加啟用 Hystrix 斷路器的注解:
@SpringBootApplication
@EnableHystrix
@EnableCircuitBreaker
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
代碼解釋:
第 3 行,我們在啟動類上添加了 EnableCircuitBreaker 的注解,表明該項目需要使用 Hystrix 斷路器。
在添加完 EnableCircuitBreaker 注解之后,我們就可以使用 HystrixCommand 注解來配置 fallbackMethod 屬性了,這樣我們就實現了簡單地服務熔斷機制。
這種采用注解加分離屬性配置的思維方式,是 Hystrix 實現服務熔斷機制的核心,Hystrix 這種簡單實現服務熔斷機制的思想,我們可以拿出來應用到我們的實際工作中去,你會發現,其實熔斷也就那么回事。
Tips:
1. EnableCircuitBreaker 注解,為 Hystrix 集成 Spring Cloud 的特定注解,且該注解中沒有任何屬性,如果我們想對 Hystrix 的斷路器進行配置,那么我們可以參考官方資料中的配置屬性,在項目的 yml 配置文件中進行配置;
2. 如果我們沒有在啟動類上添加 EnableCircuitBreaker 注解,即使我們配置了 HystrixCommand 注解,那也不能被稱為使用了服務熔斷機制,只能說明我們實現了服務容錯與服務降級,這些概念不要混淆了。
4. 視頻演示
5. 小結

本小節詳細介紹了基于服務熔斷機制所實現的服務快速失敗的概念,從什么是熔斷開始,到最后的服務熔斷機制簡單實現,旨在幫助各位同學可以很清晰地理解 Hystrix 中地服務熔斷機制,同時,Hystrix 實現服務熔斷機制的這種思想,值得我們去學習和實踐。
至此,Hystrix 中的服務快速失敗的所有實現方式就已經全部介紹完畢了,服務快速失敗作為輔助微服務項目正常運行的手段,在真實項目中必不可少,希望各位同學都能掌握該部分內容。