十六、断路器-Turbine 的使用

本文介绍如何使用Turbine实现集群监控,包括单个集群和多个集群的应用监控,并提供监控所有应用的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:
上一节里面,我们使用 Hystrix Dashboard, 只能看到单个应用内的服务信息。在生产环境下,我们经常是集群状态,所以我们就要用到 Turbine 这个应用。
作用:汇总系统内多个服务的数据并显示到 Hystrix Dashboard 上。
一、 新建项目 spring-cloud-turbine
1、 添加 jar

<dependency> 
    <groupId>org.springframework.cloud</groupId> 
    <artifactId>spring-cloud-starter-turbine</artifactId> 
</dependency> 
<dependency> 
    <groupId>org.springframework.cloud</groupId> 
    <artifactId>spring-cloud-starter-eureka</artifactId> 
</dependency> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-actuator</artifactId> 
</dependency>

2、 配置文件:application.properties

# server 
server.port=9999 

# spring 
spring.application.name=spring-cloud-turbine 

# eureka 
#eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/ 
eureka.client.serviceUrl.defaultZone=http://drunck:123456@localhost:8761/eureka/ 

# info自定义 
info.build.name=@project.name@ 
info.build.description=@project.description@ 
info.build.groupId=@project.groupId@ 
info.build.artifact=@project.artifactId@ 
info.build.version=@project.version@ 

eureka.instance.status-page-url-path=/info 
eureka.instance.instanceId=${spring.application.name}:${random.value} 
eureka.instance.prefer-ip-address=true 

#设置拉取服务注册信息时间,默认60s 
eureka.client.registry-fetch-interval-seconds=30 

#指定续约更新频率,默认是30s 
eureka.instance.lease-renewal-interval-in-seconds=15 

#设置过期剔除时间,默认90s 
eureka.instance.lease-expiration-duration-in-seconds=45 

# turbine(说明:注意必须为大写,因为 eureka 返回的值都是大写的) 
turbine.aggregator.clusterConfig=SPRING-CLOUD-CONSUMER 
turbine.app-config=spring-cloud-consumer

3、 创建主类,添加 @EnableTurbine 注解

package com.drunck.education; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.cloud.netflix.turbine.EnableTurbine; 

@EnableTurbine 
@SpringBootApplication 
public class TurbineApplication { 

 public static void main(String[] args) { 
  SpringApplication.run(TurbineApplication.class, args); 
 } 
} 

二、 测试:如何监控一个集群应用
1、 启动应用,SPRING-CLOUD-CONSUMER 启动 2 个(8888,8889),注意端口冲突(去除 devtools 依赖)
2、 访问:http://localhost:8761/hystrix
同时要监控 8888 和 8889 端口
方法一:
分别加入:
http://localhost:8888/hystrix.streamhttp://localhost:8889/hystrix.stream
方法二:
加入:http://localhost:9999/turbine.stream?cluster=SPRING-CLOUD-CONSUMER
说明:其中 cluster 对应配置文件中 clusterConfig 中的名称
3、 访问:http://localhost:8888/user/1http://localhost:8889/user/1

三、 测试:如何监控多个集群应用
1、spring-cloud-turbine 的 application.properties 添加配置:(注销之前的配置)

turbine.aggregator.clusterConfig=drunck 
turbine.app-config=spring-cloud-consumer,spring-cloud-consumer2 
turbine.cluster-name-expression=metadata['cluster'] 
turbine.combine-host-port=true 
# 默认为 true,让同一个主机上面的服务通过主机名与端口号的组合来区分 

2、spring-cloud-consumer 的 application.properties 添加配置:

eureka.instance.metadata-map.cluster=DRUNCK

(这个时候,需要在 spring-cloud-consumer,spring-cloud-consumer2 配置)

3、在 http://localhost:8761/hystrix 加入:http://localhost:9999/turbine.stream?cluster=DRUNCK

四、 测试:监控全部应用
1、 spring-cloud-turbine 的 application.properties 修改配置: 保留:

turbine.app-config=spring-cloud-consumer,spring-cloud-consumer2 

修改:

turbine.cluster-name-expression='default' 

禁用:

 # turbine.aggregator.clusterConfig=DRUNCK 

2、 在 http://localhost:8761/hystrix 加入:http://localhost:9999/turbine.stream

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值