10、turbine
1、简介:
看单个的Hystrix Dashboard的数据并没有什么多大的价值,要想看这个系统的Hystrix Dashboard数据就需要用到Hystrix Turbine。Hystrix Turbine将每个服务Hystrix Dashboard数据进行了整合。Hystrix Turbine的使用非常简单,只需要引入相应的依赖和加上注解和配置就可以了。
可以为turbine独立的创建一个项目。如下图所示:

2、开发turbine微服务
以下创建一个独立的新项目。
步1、添加依赖
主是要添加netflix-turbine的依赖,但为了注册到eureka服务器上去,也必须要依赖eureka-client。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-turbine</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
步2、配置application.yml文件
以下最重要配置内容,就是turbine.aggregator.cluster-config和turbine.app-config。两个值相同都是其他微服务的spring.application.name的值。
server:
port: 2001
spring:
application:
name: eureka-turbine
eureka:
client:
enabled: true
service-url:
defaultZone: http://Jack:1234@server1:8761/eureka/
#配置turbine
#cluster的值必须要大写:http://server1:2001/turbine.stream?cluster=EUREKA-USER-HYSTRIX
#其中:EUREKA-USER-HYSTRIX是另一个项目的appname,被收集信息的程序必须要拥有@EnableCircuitBreaker注解。
turbine:
aggregator:
cluster-config:
- EUREKA-USER-HYSTRIX
app-config: EUREKA-USER-HYSTRIX
logging:
file: eureka-turbine.log
level:
root: INFO
截图:

步3、开发启动类,并添加Turbine注解
Turbine的注解是:@EnableTurbine。
package cn.wangjian.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.turbine.EnableTurbine;
@SpringBootApplication
@EnableEurekaClient
@EnableTurbine
public class EurekaTurbineApp {
public static void main(String[] args) {
SpringApplication.run(EurekaTurbineApp.class, args);
}
}
截图:

目前所有微服务的项目结构如下:

目前只启动以下项目:

说明:
1、user-hystrix项目模拟客户端项目向server进行注册,访问eureka-movie中的数据。
2、user-hystrix支持添加注解@EnableCircuitBreaker即支持熔断。且可以使用/acturator/hystrix.stream获取单一节点的数据。
3、dashboard微服务只用于显示报表界面。
步4、使用dashboard查看turbine.stream的数据
现在启动所有项目:

先访问dashboard出现以下界面:
http://server1:6001/hystrix

现在在地址栏中输入:
http://server1:2001/turbine.stream?cluster=EUREKA-USER-HYSTRIX
说明:
其中http://server1:2001/是turbine微服务的地址。
/turbine.stream是trubine固定地址值。
Cluster=...是配置到turbine项目中可以获取数据的项目名称。值必须要大写。

OK ,到此为止,已经可以使用turbine获取集群中统计数据了。上面显示hosts数量为2,因为user-hystrix项目启动两次,一个为4001端口,一个是4002端口。




