- Turbine是聚合服务器发送事件流数据的一个工具,hystrix的监控中,只能监控单个服务或单个节点,实际生产中都为多服务集群,因此可以通过turbine来监控多集群服务。
Turbine在Hystrix Dashboard中的作用如下:
- 添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-turbine</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-turbine</artifactId>
</dependency>
- 添加配置
turbine:
# 配置Eureka中的serviceId列表,标记监控哪些服务,多个服务名用逗号分隔,可以配置监控的服务,必须开启了Hystrix Dashboard
app-config: EUREKA-CLIENT-CONSUMER
# 指定聚合哪些集群,多个使用","分割,default代表默认集群。集群就是服务名称。需要配置clusterNameExpression使用
cluster-name-expression: "default"
spring:
application:
name: turbine
server:
port: 8080
eureka:
client:
service-url:
defaultZone: http://admin:123456@127.0.0.1:8761/eureka/
- 编写启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.turbine.EnableTurbine;
@SpringBootApplication
@EnableTurbine
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
- 最后再Hystrix Dashboard视图监控服务中,使用http://ip:port/turbine.stream作为监控数据来源,提供可视化监控界面。
注意:使用Turbine做多服务监控的时候,要求全局配置文件中配置的服务列表命名在Eureka注册中心中可见。就是先启动Application client再启动Turbine
在spring cloud中,服务名相同的多服务结点会自动形成集群,并提供服务。在Turbine中,监控服务集群不需要提供任何的特殊配置,因为turbine.appConfig已经配置了要监控的服务名称。集群监控数据会自动收集。
在Hystrix Dashboard的可视化监控界面中,hosts信息会显示出服务集群中的节点数量。
注意:使用Turbine做服务集群监控的时候,必须先启动application client集群,再启动Turbine。保证Turbine启动的时候,可以在eureka注册中心中发现要监控的服务集群。