查看单个微服务的Hystrix Dashboard的数据可以参考上篇文档,如果想看整个系统的Hystrix Dashboard数据就需要用到Hystrix Turbine。Hystrix Turbine将每个服务Hystrix Dashboard数据进行了整合。
本次实验时,仍在cloud注册中心集成Turbine,但发现一直是loading状态。最终将Hystrix Dashboard从注册中心项目中剔除掉,新创建Turbine监控工程,一切正常。
pom.xml 主要内容如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-turbine</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-turbine</artifactId>
<version>1.3.1.RELEASE</version>
</dependency>
application.properties
spring.application.name=spring-cloud-turbine
server.port=8001
#配置Eureka中的serviceId列表,表明监控哪些服务
turbine.appConfig=spring-cloud-provider,spring-cloud-consumer
#指定聚合哪些集群,多个使用”,”分割,默认为default
turbine.aggregator.clusterConfig=default
#设置监控的表达式,通过此表达式表示要获取监控信息名称
turbine.clusterNameExpression= new String("default")
#配置该路径,使用HystrixConfig配置类不起作用
turbine.instanceUrlSuffix=/hystrix.stream
eureka.client.serviceUrl.defaultZone=http://localhost:9000/eureka/
TurbineApplication.java
@SpringBootApplication
@EnableHystrixDashboard//启用Hystrix Dashboard
@EnableTurbine//启用Turbine
public class TurbineApplication {
public static void main(String[] args) {
SpringApplication.run(TurbineApplication.class, args);
}
}
测试
注册到eureka中http://cos6743:9000/
trubine监控,访问http://cos6743:8001/hystrix,可以看到提供者和消费者的服务调用情况