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

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

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