Hystrix 服務(wù)監(jiān)控平臺基本內(nèi)容講解與實操 (一)
1. 前言
在之前的小節(jié)中,我們已經(jīng)把 Hystrix 中所提供的微服務(wù)治理特性已經(jīng)全部介紹完畢了,理解和掌握這些特性是用好 Hystrix 的基礎(chǔ),如果各位同學(xué)有哪些地方還不清楚,請將之前的小節(jié)重復(fù)學(xué)習(xí)幾遍。在介紹完 Hystrix 的所有特性之后,最后我們還需要對 Hystrix 中提供的最后一個功能,服務(wù)監(jiān)控平臺進(jìn)行介紹。
本小節(jié)會對 Hystrix 中自帶的微服務(wù)監(jiān)控平臺進(jìn)行介紹,微服務(wù)監(jiān)控平臺分為平臺搭建和平臺使用兩部分,在本節(jié)中,我們先來搭建 Hystrix 的服務(wù)監(jiān)控平臺。
本節(jié)主要內(nèi)容:
-
什么是服務(wù)監(jiān)控平臺;
-
使用 Hystrix 搭建服務(wù)監(jiān)控平臺。
2. 什么是服務(wù)監(jiān)控平臺
Hystrix 中的服務(wù)監(jiān)控平臺,就是對微服務(wù)項目進(jìn)行監(jiān)控的平臺,包括服務(wù)運行的狀態(tài)、服務(wù)有無宕機、服務(wù)異常信息監(jiān)控等內(nèi)容,為開發(fā)者和運維者提供了比較友好地界面支持,開發(fā)者和運維者可以直接通過觀察服務(wù)平臺界面,來判斷具體微服務(wù)的狀態(tài)信息,從而更好地對微服務(wù)進(jìn)行控制。
默認(rèn)的 Hystrix 中間件已經(jīng)為我們封裝好了微服務(wù)監(jiān)控平臺,但是需要通過引入依賴的方式來使用它,接下來就讓我們來看一下如何搭建該服務(wù)監(jiān)控平臺吧。
3. 使用 Hystrix 搭建服務(wù)監(jiān)控平臺
Hystrix 將原生特性和服務(wù)監(jiān)控平臺分為了兩部分進(jìn)行集成,目前,我們所引入的 Hystrix 依賴是下面這樣的:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
這個依賴只提供了 Hystrix 的基本特性,就是我們前面所介紹的服務(wù)容錯與降級、服務(wù)熔斷、服務(wù)快速失敗等基礎(chǔ)內(nèi)容,并沒有把微服務(wù)監(jiān)控臺集成到該依賴中,所以,如果我們想搭建微服務(wù)監(jiān)控平臺,就需要引入專門支持微服務(wù)監(jiān)控平臺的依賴,如下所示:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>
spring-cloud-starter-netflix-hystrix-dashboard
</artifactId>
</dependency>
從上述 artifactid 可以看出,基礎(chǔ)的 Hystrix 依賴只比微服務(wù)監(jiān)控平臺的依賴名稱少一個 dashboard ,這就是 Spring Cloud 潛在的命名規(guī)范,大家可以參考學(xué)習(xí)。
在服務(wù)提供者的項目中,我們還需要引入一個依賴,如下所示:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
這個依賴是 Spring boot 框架提供的一個監(jiān)控器,HystrixDashboard 需要配置這個監(jiān)控器來完成對微服務(wù)項目的監(jiān)控。
由于我們的項目是基于 Maven 包管理工具所構(gòu)建的項目,所以我們需要將微服務(wù)監(jiān)控平臺的依賴引入到我們的項目中去。
在將微服務(wù)監(jiān)控平臺的依賴引入項目中去后,等待我們的編譯器解析完成,沒有報任何的紅色錯誤,說明我們已經(jīng)將 Hystrix 的微服務(wù)監(jiān)控平臺引入到了項目中去。
在將依賴引入成功后,我們需要對我們的 Spring Cloud 微服務(wù)項目做一下簡單的配置,以可以使用 Hystrix 的服務(wù)監(jiān)控平臺。
首先,找到我們項目的啟動類,然后在啟動類的上方,添加 @EnableHystrixDashboard 注解,表明在項目中啟用 Hystrix 的微服務(wù)項目監(jiān)控平臺,如下代碼所示:
@SpringBootApplication
@EnableHystrix
@EnableHystrixDashboard
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
代碼解釋:
第 3 行,我們在項目啟動類的上方添加了 EnableHystrixDashboard 注解,表明在項目中已經(jīng)開啟了 Hystrix 微服務(wù)監(jiān)控平臺的使用,可以在項目中使用微服務(wù)監(jiān)控平臺了。
經(jīng)過上述配置之后,運行我們的項目,然后在瀏覽器地址欄輸入:
localhost:8060/hystrix
即項目地址 + 項目端口號 + hystrix 路徑,當(dāng)看到下面截圖時,說明我們的 Hystrix 微服務(wù)監(jiān)控平臺已經(jīng)成功集成到了我們的項目中來。

這就是搭建 Hystrix 微服務(wù)監(jiān)控平臺的全部流程,希望同學(xué)們可以一次成功。
Tips:
1. 各位同學(xué)在選擇 HystrixDashboard 的依賴時,一定要確保 HystrixDashboard 的依賴版本與我們所使用的 Hystrix 的依賴版本保持一致,否則就會出現(xiàn)由于版本不一致而引起的兼容問題,導(dǎo)致我們的 HystrixDashboard 無法引入到項目中去;
2. 在配置項目啟動類時,需要保證 @EnableHystrix 注解和 @EnableHystrixDashboard 注解同時存在,這兩個注解少一個,我們的微服務(wù)監(jiān)控平臺就無法正常使用,這點需要同學(xué)們注意。
3. 在訪問 Hystrix 的微服務(wù)項目監(jiān)控平臺時,/hystrix 為 Hystrix 提供的默認(rèn)訪問路徑,不需要我們進(jìn)行額外的配置,實際工作中,也很少有人會專門對這個路徑名稱進(jìn)行修改;
4. 使用 Hystrix 的微服務(wù)監(jiān)控平臺,需要至少存在 2 個微服務(wù)項目,Hystrix 不能自己監(jiān)測自己本身,這一點請同學(xué)們注意。
4. 視頻演示
5. 小結(jié)

本小節(jié)采用圖文并茂的方式,為大家詳細(xì)介紹了什么微服務(wù)監(jiān)控平臺,以及如何在 Spring Cloud 項目中搭建 Hystrix 微服務(wù)監(jiān)控平臺,同時,在搭建過程中,針對容易出現(xiàn)問題的地方我也做了相應(yīng)的補充。
在介紹完 Hystrix 微服務(wù)監(jiān)控平臺之后,接下來我們就需要對監(jiān)控平臺中的各個參數(shù)屬性進(jìn)行介紹,讓我們下節(jié)見吧。