Spring Cloud:使用Hystrix實現斷路器原理詳解(下)
閱讀文字大概需要 3 分鐘。
上一節主要介紹了 Spring Cloud 中使用 Hystrix 來做服務的熔斷與降級處理,確保整個系統正常執行,而不至於發生“雪崩效應”。那麼如果我們想在一個視覺化介面來監控這些服務,該怎麼做呢?
1. Hystrix Dashboard 監控
除了隔離依賴服務的呼叫以外,Hystrix 還提供了準實時的呼叫監控(Hystrix Dashboard),Hystrix 會持續記錄所有透過 Hystrix 發起的請求的執行資訊,並以統計報表和圖形的形式展示給使用者,包括每秒執行多少請求,有多少成功或者失敗等。Spring Cloud 也提供了 Hystrix Dashboard 的整合,對監控內容轉化成視覺化介面。
2. 如何監控?實際落地操作
我們新建一個工程:microservice-order-consumer-hystrix-dashboard,用來完成視覺化監控。埠號設定為 9002。
2.1 匯入監控相關的依賴
首先要匯入 dashboard 的依賴:
<dependencies>
<!-- hystrix -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>
</dependencies>
2.2 新增啟動註解
在啟動類中,需要新增 @EnableHystrixDashboard 註解。
@SpringBootApplication
@EnableHystrixDashboard
public class OrderConsumerHystrixDashboard {
public static void main(String[] args) {
SpringApplication.run(OrderConsumerHystrixDashboard.class, args);
}
}
2.3 服務提供方需要新增監控依賴
在服務提供方,也需要新增一個 Spring Boot 監控依賴:
<!-- spring boot actuator 監控資訊 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2.4 測試一下
OK,這樣的話,hystrix dashboard 就基本配置好了,啟動一下我們新建的這個監控專案,在瀏覽器中輸入:,如果出現下面的這隻豪豬兄,那說明 dashboard 沒有問題。
3. 如何來監控其他服務
OK,上面我們能正常啟動豪豬兄了,但是如何監控其他服務呢?我們以帶有 hystrix 的訂單提供服務為例(埠號為8001)。如果要實現被監控,我們需要在被監控的服務上做一些準備。
3.1 依賴匯入
首先在這個訂單服務上新增 hystrix 依賴(當然了,該8001埠的訂單提供服務已經新增過了該依賴了):
<!-- hystrix -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
3.2 啟動類註解
在啟動類上新增註解:@EnableCircuitBreaker
@SpringBootApplication
@EnableEurekaClient
@MapperScan("com.itcodai.springcloud.dao")
@EnableCircuitBreaker
public class OrderProvider01 {
public static void main(String[] args) {
SpringApplication.run(OrderProvider01.class, args);
}
}
3.3 application.yml 配置檔案
最後,在配置檔案中開啟指標流端點,這個在後面監控時候需要用到,下文再來描述。
# 配置hystrix dashboard的url訪問
# 開啟指標流端點
management:
endpoints:
web:
exposure:
include: hystrix.stream
3.4 測試一下
萬事俱備,只欠東風了,接下來我們來測試一下效果。首先:使用8001埠的訂單服務為例,首先啟動eureka叢集,然後啟動帶有hsytrix的訂單服務,我們在瀏覽器裡輸入 可以獲取訂單服務資訊,確定訂單服務正常。
然後開啟 能出現豪豬兄,說明 dashboard 沒有問題。
我們看到,這個url 就是用來監控某個服務的狀態,上面在application.yml檔案裡配置的url就是作用於此,我們新開啟一個瀏覽器視窗,輸入:,可以看到一直在刷一些資訊,這些資訊就是該服務相關介面的資訊,但是很不直觀,接下來我們看一下直觀的效果。
在豪豬兄的頁面輸入, delay延遲設定為2000(2秒),Title自己取個名字即可。開啟後即可在視覺化頁面監控 8001 這個埠的介面呼叫資訊,我們呼叫兩個介面:
多次重新整理幾次呼叫,可以看到視覺化介面的一些資訊,如下:
從這個監控儀表盤中可以很清楚的看到服務被呼叫的狀態,至於如何看,不同的部分表示什麼?大家可以去百度一下,解釋的很清楚,這裡不再贅述。
注意一下:Hystrix dashboard 皮膚正常顯示,所監控的介面方法上必須要有 @HystrixCommand 註解,否則會一直顯示 Loading,這是一個注意的地方。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31558358/viewspace-2565241/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- spring cloud之斷路器hystrix(五)SpringCloud
- Spring Cloud(五)斷路器監控(Hystrix Dashboard)SpringCloud
- Spring Cloud入門教程-Hystrix斷路器實現容錯和降級SpringCloud
- Spring Cloud實戰系列(四) - 熔斷器HystrixSpringCloud
- Spring Cloud Netflix—斷路器:Hystrix客戶端SpringCloud客戶端
- Spring Cloud構建微服務架構-Hystrix斷路器SpringCloud微服務架構
- Spring Cloud構建微服務架構—Hystrix斷路器SpringCloud微服務架構
- Spring cloud(4)-熔斷(Hystrix)SpringCloud
- spring cloud微服務分散式雲架構(四)-斷路器(Hystrix)SpringCloud微服務分散式架構
- Spring Cloud:使用Ribbon實現負載均衡詳解(下)SpringCloud負載
- 微服務斷路器模式實現:Istio vs Hystrix微服務模式
- 介紹Spring Cloud斷路器SpringCloud
- Spring Cloud:使用 Feign 實現負載均衡詳解SpringCloud負載
- 詳解Spring Retry實現原理Spring
- 7、Spring Cloud HystrixSpringCloud
- Spring Cloud:使用Ribbon實現負載均衡詳解(上)SpringCloud負載
- SpringCloud(三)Hystrix斷路器SpringGCCloud
- 使用Spring Boot + Resilience 4j實現斷路器Spring Boot
- Spring Cloud Gateway的斷路器(CircuitBreaker)功能SpringCloudGatewayUI
- 熔斷器 Hystrix 原始碼解析 —— 斷路器 HystrixCircuitBreaker原始碼UI
- (十三)spring cloud微服務分散式雲架構-服務容錯保護(Hystrix斷路器)SpringCloud微服務分散式架構
- java spring cloud 版b2b2c社交電商-熔斷器HystrixJavaSpringCloud
- Spring Cloud 之 Hystrix.SpringCloud
- Spring Cloud Spring Boot mybatis分散式微服務雲架構-hystrix引數詳解CloudSpring BootMyBatis分散式微服務架構
- Spring Boot中使用斷路器模式實現彈性微服務Spring Boot模式微服務
- Spring Cloud 關於:Spring Cloud Netflix HystrixSpringCloud
- Spring Cloud Spring Boot mybatis 企業分散式微服務雲(九)服務容錯保護(Hystrix斷路器)【Dalston版】CloudSpring BootMyBatis分散式微服務
- 微服務架構 | 5.1 使用 Netflix Hystrix 斷路器微服務架構
- spring cloud構建網際網路分散式微服務雲平臺- hystrix工作原理SpringCloud分散式微服務
- spring cloud構建網際網路分散式微服務雲平臺- hystrix工作原理SpringCloud分散式微服務
- Spring框架系列(12) - Spring AOP實現原理詳解之JDK代理實現Spring框架JDK
- Spring原始碼剖析7:AOP實現原理詳解Spring原始碼
- Spring Cloud Hystrix應用篇(十一)SpringCloud
- Spring Cloud Hystrix原碼篇(十一)SpringCloud
- Spring Cloud Hystrix 容錯保護SpringCloud
- Hystrix指標視窗實現原理指標
- Spring框架系列(9) - Spring AOP實現原理詳解之AOP切面的實現Spring框架
- Spring框架系列(11) - Spring AOP實現原理詳解之Cglib代理實現Spring框架CGLib