Hystrix 簡介

大家好,今天我們開始一個新專題 — Hystrix。關于 Hystrix ,想必使用過 Spring Cloud 框架的同學都有所耳聞,它的知識點相對來說還是比較龐大的,如果單靠本專題是介紹不完的。
本專題我們重點講解針對 Hystrix 在基于 Spring Cloud 框架中的基本概念和基本用法,在介紹完基本使用之后,會帶領大家從 0 到 1 的來搭建一款基于 Spring Cloud 框架的微服務 Demo 項目。
本文我們主要先介紹一下 Hystrix 是什么?有哪些特性?優缺點在哪?為什么我們需要在項目開發中應用 Hystrix ?
1. 什么是 Hystrix ?
什么是 Hystrix 呢?在 Hystrix 官網中是這么介紹的:
對于分布式系統的延遲和容錯. —官網
上述定義是官網的抽象描述,同學們可能不太理解,下面我對定義進行一些必要的解釋。
通俗來講,我們可以這樣理解:Hystrix 是針對與分布式系統中所產生的延遲問題和容錯問題的一種解決方案,也就是說,Hystrix 就是為了解決在分布式系統中出現的系統間延遲問題,以及服務間容錯問題所誕生的一款微服務組件。
2. 為什么要使用 Hystrix
那么我們為什么要使用 Hystrix 呢?
2.1 配置簡單,容易上手
由于 Hystrix 是 Spring Cloud 框架中的一款組件,又因為 Spring Cloud 框架的運行是依賴于 Spring Boot 框架,所以,我們在使用 Hystrix 時,只需要將 Hystrix 的依賴交給 Spring 去管理就好了,我們只需要將 Hystrix 的依賴引入到項目中去即可。
在將 Hystrix 依賴引入到項目中后,由于 Spring Boot 框架的特性,我們不需要進行繁瑣的 xml 文件的配置,只需要將和 Hystrix 相關的配置項以一個配置類的形式,或直接將其配置到配置源文件中去即可。
2.2 功能強大,持久穩定
Hystrix 針對與分布式系統,其提供了服務容錯、服務降級、服務反饋、服務快速失敗,快速恢復、延遲降低、服務實時監控等功能,經過近 6 年的發展,Hystrix 已經形成了較為穩定的生態社區以及服務支撐,目的就是為了保證我們的分布式系統能夠安全平穩的運行。
總結:
Hystrix 其實就是為了解決在分布式系統中出現的延遲問題、服務間問題而來的一款微服務組件,其依賴于 Spring Cloud 框架,通過提供一系列保障措施,來保證我們的分布式系統可以安全平穩的運行。
3. Hystrix 的版本說明
Hystrix 從 2012 年誕生,到現在已經有 8 個年頭了,其中,持續發展了 6 年,在這中間已經迭代升級了很多版本,目前,最新的版本是 v1.5.18,每個版本都有不同的特性,下面介紹一個主要使用的版本和新版本的特性。
-
V1.0.0 - 1.2.X:自 Hystrix 誕生而演變的階段版本,也可以稱為最初發布版本,現在基本已經很少使用了;
-
V1.3.X - 1.4.X: 目前使用較多的版本,也是基本穩定的版本;
-
V1.5.X: 目前發布的最新版本,于 2018 年 9 月 17 日發布,主要是優化了 Hystrix 之前版本中不穩定的因素,以及其中的一些 Bug 項,最新版本較之前發布的版本更好用、更穩定、配置更靈活。
Tips: 鑒于此,本套課程采用 V1.5.12 版本進行講解,請同學們務必和老師所使用的版本保持一致,以避免后續因為版本而引起的不必要的問題,以及一些兼容性問題。
4. Hystrix 的優點
-
配置靈活 : 支持通過配置類、yml 配置源文件的形式來對 Hystrix 進行配置。
-
功能強大 : 提供了豐富的保障措施,例如,服務降級、服務容錯等,很大力度上保證了我們的分布式項目的平穩運行。
5. Hystrix 的缺點
-
有一定的不穩定性 : 經過長時間的使用可以得出,Hystrix 有時會出現丟數據、節點宕機問題,但這不是經常發生的。
-
可能會有意料之外的 Bug : 一般而言,Hystrix 就是對分布式微服務進行管理,所以一般不會出現由 Hystrix 管理的節點所宕機的情況,但是這個問題也有一定頻率出現。
6. 學習基礎
-
學習本門課程,首先需要對 Java 的 Spring Boot 框架有較為熟練的使用經驗,以及對 Spring Cloud 框架有初步的了解和基本認知;
-
對 Spring Cloud 框架感興趣以及對 Spring Cloud 生態體系中各組件,比如:Hystrix 感興趣的同學。
7. 總結

本小節詳細介紹了 Hystrix 這一微服務輔助工具,從 Hystrix 的定義開始,到 Hystrix 不同版本間特性差異的闡述,再到最后 Hystrix 的優缺點總結對比。
希望沒有接觸過 Hystrix 的同學,通過對本節內容的學習可以簡單了解什么是 Hystrix ,以及它能為我們做哪些事情,本篇是整套課程的開端,希望各位同學能夠持續關注,謝謝。