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

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

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

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

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

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

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

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

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

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

最后,等待 IDEA 將項(xiàng)目包編譯完成即可運(yùn)行項(xiàng)目。
第二種方式 通過 Maven 包管理工具實(shí)現(xiàn)
通過 Maven 包管理工具實(shí)現(xiàn)的方法和第一種實(shí)現(xiàn)方式非常類似,我們需要將 Hystrix 工具對(duì)應(yīng)的 Maven 坐標(biāo)依賴復(fù)制到項(xiàng)目的 pom 文件中去就可以了。
Tips: 上述實(shí)現(xiàn)方式與本實(shí)現(xiàn)方式最大的區(qū)別在于:此種實(shí)現(xiàn)方式需要手動(dòng)搜索 Hystrix 的依賴項(xiàng),并手動(dòng)導(dǎo)入;而上述實(shí)現(xiàn)方式不需要手動(dòng)搜索依賴項(xiàng),只需要通過手動(dòng)配置即可,這一點(diǎn)需要同學(xué)們注意。
我們來看一下上述實(shí)現(xiàn)方式中所對(duì)應(yīng)的 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 依賴坐標(biāo)復(fù)制到項(xiàng)目的 pom 文件中去即可。
Tips: 第一種方式適合接觸過 Spring Boot 框架,但是沒有接觸過 Spring Cloud 框架的同學(xué);第二種方式適合兩種框架都接觸過,但是沒有使用過 Hystrix 工具的同學(xué)。
3. 集成成功與否的必要性測(cè)試
無論使用上述哪種方式,實(shí)現(xiàn)的效果都是一樣的。在配置好之后,我們需要啟動(dòng)剛剛配置的項(xiàng)目,來檢測(cè)我們的配置是否成功了。
單獨(dú)的引入 Hystrix 依賴,我們是無法檢測(cè)是否配置成功的,所以我們又引入了 Hystrix-Dashboard 微服務(wù)監(jiān)控依賴,我們可以通過訪問 Hystrix-Dashboard 微服務(wù)監(jiān)控平臺(tái)來檢測(cè) Hystrix 是否配置成功。

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

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