Hystrix 簡介

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

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