Hystrix Dashboard实现了数据监控,但是只能看到单个应用内的服务信息,Netflix提供了Turbine,可以把多个"hystrix.stream"的内容聚合为一个数据源供Dashboard展示。
复制项目,修改应用名称和端口号
复制Feign项目,修改应用名称和端口号
1、添加Turbine依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--Hystrix的依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
<version>1.2.6.RELEASE</version>
</dependency>
<!--Actuator依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--Hystrix依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<!--Turbine依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-turbine</artifactId>
</dependency>
2、配置Turbine支持
在启动类上添加注解@EnableTurbine,以激活Turbine的支持。
@SpringBootApplication
@EnableDiscoveryClient
@EnableCircuitBreaker //开启熔断器
@EnableHystrixDashboard
@EnableTurbine //开启Turbine
public class HystrixSpringcloudApplication {
public static void main(String[] args) {
SpringApplication.run(HystrixSpringcloudApplication.class, args);
}
}
3、配置多个监控
spring.application.name=turbine
server.port=50009
eureka.client.fetch-registry=true
eureka.client.register-with-eureka=true
eureka.client.service-url.defaultZone=http://eureka01:50001/eureka/,http://eureka02:50002//eureka/
#开启支持
feign.hystrix.enabled=true
#配置"服务中心"的serviceid列表,表明监控哪个dashboard
turbine.app-config=hystrix1,hystrix2
#集群名称表达式,默认为应用名
turbine.cluster-name-expression=new String("default")
4、启动"服务提供者"和"服务消费者"
5、测试Turbin聚合监控