上一章咱們集成了Hystrix Dashboard,使用Hystrix Dashboard能夠看到單個應用內的服務信息,顯然這是不夠的,咱們還須要一個工具能讓咱們彙總系統內多個服務的數據並顯示到Hystrix Dashboard上,這個工具就是Turbine。java
修改 spring-cloud-consul-monitor 的pom文件,添加 turbine 依賴包。git
注意:由於咱們使用的註冊中心是Consul,因此須要排除默認的euraka包,否則會有衝突啓動出錯。spring
pom.xmlapp
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-turbine</artifactId> <exclusions> <exclusion> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </exclusion> </exclusions> </dependency>
啓動類添加 @EnableTurbine 註解,開啓 turbine 支持,添加 @EnableDiscoveryClient 註解,把本身也做爲服務註冊到註冊中心。工具
ConsuleMonitorApplication.java測試
package com.louis.spring.cloud.consul.monitor; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard; import org.springframework.cloud.netflix.turbine.EnableTurbine; @EnableTurbine @EnableHystrixDashboard @EnableDiscoveryClient @SpringBootApplication public class ConsuleMonitorApplication { public static void main(String[] args) { SpringApplication.run(ConsuleMonitorApplication.class, args); } }
修改配置,配置註冊服務信息,添加turbine配置。ui
application.ymlspa
server: port: 8531 spring: application: name: spring-cloud-consul-monitor cloud: consul: host: localhost port: 8500 discovery: serviceName: ${spring.application.name} # 註冊到consul的服務名稱 turbine: instanceUrlSuffix: hystrix.stream # 指定收集路徑 appConfig: spring-cloud-consul-consumer # 指定了須要收集監控信息的服務名,多個以「,」進行區分 clusterNameExpression: "'default'" # 指定集羣名稱,若爲default則爲默認集羣,多個集羣則經過此配置區分 combine-host-port: true # 此配置默認爲false,則服務是以host進行區分,若設置爲true則以host+port進行區分
由於turbine收集信息是從註冊中心獲取相關服務或集羣的,因此須要把監控目標也註冊到註冊中心。.net
修改 spring-cloud-consul-consumer,在啓動類添加 @EnableDiscoveryClient 註解,註冊服務。code
修改配置文件,寫入配置服務名稱。
依次啓動 spring-cloud-consul-producer、spring-cloud-consul-consumer、spring-cloud-consul-monitor,訪問 http://localhost:8500 查看註冊中心管理界面。
確認服務調用無誤以後, 訪問 http://localhost:8531/hystrix/,輸入 http://localhost:8531/turbine.stream,查看監控圖表。
以下圖所示,就是聚合多個Hytrix消費者的信息顯示,因爲我內存有限只啓了一個消費者,因此看起來是同樣的。
內存足夠的話複製幾分消費者項目,修改下啓動端口號啓動就好了。
碼雲:https://gitee.com/liuge1988/spring-cloud-demo.git
做者:朝雨憶輕塵
出處:https://www.cnblogs.com/xifengxiaoma/ 版權全部,歡迎轉載,轉載請註明原文做者及出處。