Turbine 是聚合服务器发送事件流数据的一个工具,hystrix 的监控中,只能监控单个节点,实际生产中都为集群,因此可以通过 turbine 来监控集群服务。
本案例中我们启动两个consumer,集成的有dashboard。创建一个新的turbine项目,通过turbine项目类聚合监控数据,然后通过dashboard-view项目来展示可视化的监控数据
<!-- 添加 turbine 坐标 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-turbine</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-turbine</artifactId>
</dependency>
123456789
配置文件中添加turbine的设置
#---------------------------------------turbine------------
--------------
#配置 Eureka 中的 serviceId 列表,表明监控哪些服务
turbine.appConfig=shop-product-consumer-hystrix-dashboard,eureka-ribbon-consumer-threadpool
#指定聚合哪些集群,多个使用","分割,默认为 default。可使用http://.../turbine.stream#cluster={clusterConfig 之一}访问turbine.aggregator.clusterConfig= default
# 1. clusterNameExpression 指定集群名称,默认表达式 appName;此时:turbine.aggregator.clusterConfig 需要配置想要监控的应用名称;
# 2. 当 clusterNameExpression: default 时,turbine.aggregator.clusterConfig 可以不写,因为默认就是 default;
# 3. 当 clusterNameExpression: metadata['cluster']时,假设想要监控的应用配置了 eureka.instance.metadata-map.cluster: ABC,
# 则需要配置,同时 turbine.aggregator.clusterConfig:ABC
turbine.clusterNameExpression="default"
注意端口不要冲突
服务一:
服务二:
如下即实现了同时监控多个服务的数据。