Spring Cloud Turbine
上一章我們集成了Hystrix Dashboard,使用Hystrix Dashboard可以看到單個應用內的服務信息,顯然這是不夠的,我們還需要一個工具能讓我們匯總系統內多個服務的數據並顯示到Hystrix Dashboard上,這個工具就是Turbine。
添加依賴
修改 spring-cloud-consul-monitor 的pom文件,添加 turbine 依賴包。
注意:因為我們使用的注冊中心是Consul,所以需要排除默認的euraka包,不然會有沖突啟動出錯。
pom.xml
<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配置。
application.yml
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收集信息是從注冊中心獲取相關服務或集群的,所以需要把監控目標也注冊到注冊中心。
修改 spring-cloud-consul-consumer,在啟動類添加 @EnableDiscoveryClient 注解,注冊服務。

修改配置文件,寫入配置服務名稱。

測試效果
依次啟動 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/
版權所有,歡迎轉載,轉載請注明原文作者及出處。
