文档章节

Spring Cloud 断路器-Turbine 集群监控

jurson86
 jurson86
发布于 2017/08/25 18:06
字数 518
阅读 88
收藏 0

前言: 
   我们使用 Hystrix Dashboard, 只能看到单个应用内的服务信息。在生产环境下,我们
经常是集群状态,所以我们就要用到 Turbine 这个应用。 
  作用:汇总系统内多个服务的数据并显示到 Hystrix Dashboard 上。 
   

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
management.port=2003
   
# spring 
spring.application.name=spring-cloud-turbine 
 
# eureka 
#eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/ 
eureka.client.serviceUrl.defaultZone=http://hlian: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 注解 


@EnableDiscoveryClient
@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.stream 和 http://localhost:8889/hystrix.stream 
方法二: 
加入:http://localhost:9999/turbine.stream?cluster=SPRING-CLOUD-CONSUMER 
说明:其中 cluster 对应配置文件中 clusterConfig 中的名称 


3、 访问:http://localhost:8888/user/1 和 http://localhost:8889/user/1  
 


三、  测试:如何监控多个集群应用 


1、spring-cloud-turbine 的 application.properties 添加配置: (注销之前的配置) 

turbine.aggregator.clusterConfig=RONCOO 
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=RONCOO 
(这个时候,需要在 spring-cloud-consumer,spring-cloud-consumer2 配置) 

 

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

四、  测试:监控全部应用 


1、  spring-cloud-turbine-19 的 application.properties 修改配置: 
保留: 
turbine.app-config=spring-cloud-consumer,spring-cloud-consumer2 
修改: 
turbine.cluster-name-expression='default' 
禁用: 
# turbine.aggregator.clusterConfig=RONCOO 
 
2、 在 http://localhost:8761/hystrix 加入:http://localhost:9999/turbine.stream 
 

 

 

© 著作权归作者所有

jurson86
粉丝 2
博文 327
码字总数 341542
作品 0
深圳
个人站长
私信 提问
Spring Cloud 2.x系列之断路器集群监控Turbine

前几篇已经实现了对单个服务实例的监控,当然在实际应用中,单个实例的监控数据没有多大的价值,我们其实更需要的是一个集群系统的监控信息,这时就需要引入Turbine。Turbine能够汇集监控信息...

技术小能手
2018/10/08
0
0
Spring Cloud 断路器 Hystrix

在微服务架构中,通常存在多个服务调用层。微服务之间通过网络进行通信,从而支撑起整个应用,为了保证高可用,单个服务通常也会集群部署。但由于网络原因或者自身原因,服务并不能保证100% ...

TurboSanil
05/06
38
0
Spring Cloud Finchley.SR1 的学习与应用 7 - 服务容错保护 Hystrix

Hystrix 分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况,这种现象被称为服务雪崩效应。为了应对服务雪崩,一种常见的做法是手动服务降级。而 Hystrix 的出现,给我们提...

张shieppp
2018/11/21
77
0
Spring Cloud Netflix架构浅析

最近接触微服务这块的东西,对这方面有了一些了解,拿出来和大家分享一下。 微服务框架Spring Boot+Spring Cloud Spring Cloud是基于Spring Boot的一整套实现微服务的框架,可以说,Spring ...

海岸线的曙光
2017/12/20
930
0
白话SpringCloud | 第六章:Hystrix监控面板及数据聚合(Turbine)

前言 前面一章,我们讲解了如何整合。而在实际情况下,使用了的同时,还会对其进行实时的数据监控,反馈各类指标数据。今天我们就将讲解下和.其中是一款针对进行实时监控的工具,通过我们可以...

oKong
2018/09/26
466
3

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
4
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
5
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部