上一章咱们集成了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/ 版权全部,欢迎转载,转载请注明原文做者及出处。