Spring Cloud 集成 Hystrix
1. 前言
本節(jié)會為大家介紹,如何基于 Spring Cloud 框架集成 Hystrix 微服務組件。Spring Cloud 框架集成 Hystrix 微服務組件,是學習 Hystrix 基礎(chǔ)中的基礎(chǔ),也是本門課程的開端,所以,希望各位同學都能掌握本節(jié)內(nèi)容。
本節(jié)主要內(nèi)容:
-
Spring Cloud 集成 Hystrix 主流方法介紹;
-
集成成功與否的必要性測試。
希望同學們可以完全掌握本節(jié)內(nèi)容。
2. Spring Cloud 集成 Hystrix 主流方法介紹
對于 Hystrix 微服務組件的集成,不同的微服務管理框架有著不同的集成方式,由于本套課程是采用 Spring Cloud 框架,所以我們就來看看針對與 Spring Cloud 框架,是如何集成 Hystrix 的。
下面我將對不同的集成實現(xiàn)方式做詳細介紹,各位同學可以選擇自己的方式進行集成,同時也希望各位同學體會其中的差異,以及適用的業(yè)務場景。
第一種方式 通過 Spring Cloud 官網(wǎng)實現(xiàn)
此種實現(xiàn)方式是一種“大而全”的實現(xiàn)方式,也就是說,通過此種方式進行的集成操作,會將所有輔助的依賴一次性集成。
第一步: 打開 Spring Cloud 的官網(wǎng),并在官網(wǎng)中找到 Spring Quick Start 界面,出于方便考慮,我在這里直接給出地址,如下所示。
打開之后的界面,如下圖所示:

在該界面中可以看到 Step 1 的標題,在該標題下放的第一句中,有個藍色的網(wǎng)址,這個地址就是我們需要的集成界面,打開之后如下圖所示:

第二步: 配置 Hystrix 等其他依賴項。
在打開上述 spring initializr 界面之后,我們就可以在該界面上進行所需依賴項的配置就行了。
首先,我們需要對項目的基本信息進行配置:選擇我們所使用的項目包管理工具,這里我們選擇 Maven ,語言選擇 Java ,Spring Boot 版本,出于穩(wěn)定考慮,這里選擇 2.1.16 版本。
最后,我們需要配置項目所使用的依賴包,在界面右側(cè)的 Dependencies 區(qū)域,可以看到一個 ADD DEPENDENCIES 按鈕,如下圖紅框處所示。

我們點擊即 ADD DEPENDENCIES 按鈕,會出現(xiàn)一個選擇依賴的彈框,我們可以在彈出界面上選擇所需的依賴,這里我們選擇 Hystrix ,如下圖所示。

Tips: 這里我們需要選擇 Netflix 的 Hystrix 依賴,不要選錯了。
在上述操作完成之后,我們就完成了 Hystrix 依賴的配置,配置完畢后,上述 spring initializr 界面如下圖所示。

第三步: 打包生成項目包文件
在我們完成 Hystrix 的依賴項配置之后,我們就可以從 Spring 官網(wǎng)將我們配置好的項目包下載下來使用了,我們只需要點擊 spring initializr 界面下方的 generate 按鈕,即可打包下載我們配置好的項目包,如下圖所示。

點擊 generate 之后,我們只需要等待項目包下載完成即可使用了。
在項目包下載完成之后,我們需要將下載好的項目包導入到我們的本地環(huán)境。首先我們需要解壓該項目包,在解壓完成后,會得到如下圖所示的項目結(jié)構(gòu)。

接著,我們使用自己的 IDE ,將項目包進行導入(以 IDEA 為例):
打開 IDEA ,找到 File 菜單欄,并選擇 open , 如下圖所示:

在 open 彈出菜單中,選擇我們項目包所在位置,并且選中 pom 文件,如下圖所示:

接著,在彈出的提示框中,選擇 open as project , 如下圖所示:

最后,等待 IDEA 將項目包編譯完成即可運行項目。
第二種方式 通過 Maven 包管理工具實現(xiàn)
通過 Maven 包管理工具實現(xiàn)的方法和第一種實現(xiàn)方式非常類似,我們需要將 Hystrix 工具對應的 Maven 坐標依賴復制到項目的 pom 文件中去就可以了。
Tips: 上述實現(xiàn)方式與本實現(xiàn)方式最大的區(qū)別在于:此種實現(xiàn)方式需要手動搜索 Hystrix 的依賴項,并手動導入;而上述實現(xiàn)方式不需要手動搜索依賴項,只需要通過手動配置即可,這一點需要同學們注意。
我們來看一下上述實現(xiàn)方式中所對應的 Maven 依賴:
<!-- Hystrix -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<!-- Hystrix-Dashboard -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>
我們只需要將上述 Maven 依賴坐標復制到項目的 pom 文件中去即可。
Tips: 第一種方式適合接觸過 Spring Boot 框架,但是沒有接觸過 Spring Cloud 框架的同學;第二種方式適合兩種框架都接觸過,但是沒有使用過 Hystrix 工具的同學。
3. 集成成功與否的必要性測試
無論使用上述哪種方式,實現(xiàn)的效果都是一樣的。在配置好之后,我們需要啟動剛剛配置的項目,來檢測我們的配置是否成功了。
單獨的引入 Hystrix 依賴,我們是無法檢測是否配置成功的,所以我們又引入了 Hystrix-Dashboard 微服務監(jiān)控依賴,我們可以通過訪問 Hystrix-Dashboard 微服務監(jiān)控平臺來檢測 Hystrix 是否配置成功。

如果我們的 Hystrix 是配置成功的話,那么,可以通過輸入應用實例地址加端口,且最后以 /hystrix 形式結(jié)尾的鏈接,即可看到我們的 Hystrix Dashboard 監(jiān)控面板。
就我本機而言,我的應用訪問地址是 http://localhost:8093/prefix/hystrix ,每個人的訪問地址可能都不一樣。
Tips: 我們可以查看項目的配置文件,來獲取項目的 ip 地址、端口號信息,ip 地址 + 端口號就組成了項目地址,在項目地址最后,添加 /hystrix 后綴,即可訪問 Hystrix Dashboard 監(jiān)控面板。
如果當我們的項目運行之后,可以看到 Hystrix Dashboard 監(jiān)控面板,就說明我們的 Hystrix 已經(jīng)成功集成到了 Spring Cloud 框架中去,我們就可以愉快的來使用 Hystrix 了。
4. 小結(jié)

本小節(jié)通過圖文并茂的方式,為大家介紹了如何將 Hystrix 工具集成到 Spring Cloud 框架中去,通過介紹兩種不同的實現(xiàn)方式,希望同學們能體會其中的區(qū)別,并根據(jù)自己實際情況選擇合適的方法來實現(xiàn)。
本小節(jié)是本套課程的開端,是學習本套 Hystrix 課程的基礎(chǔ),如果同學們不能掌握本節(jié)的內(nèi)容,那么后續(xù) Hystrix 的學習都不能繼續(xù),所以,請各位同學務必掌握本節(jié)內(nèi)容。