转载自:
http://blog.csdn.net/forezp/article/details/70233227
本文出自方志朋的博客
上一篇文章讲述了如何利用Hystrix Dashboard去监控断路器的Hystrix command。当我们有很多个服务的时候,这就需要聚合所以服务的Hystrix Dashboard的数据了。这就需要用到spring Cloud的另一个组件了,即Hystrix Turbine。
一、Hystrix Turbine简介
看单个的Hystrix Dashboard的数据并没有什么多大的价值,要想看这个系统的Hystrix Dashboard数据就需要用到Hystrix Turbine。Hystrix Turbine将每个服务Hystrix Dashboard数据进行了整合。Hystrix Turbine的使用非常简单,只需要引入相应的依赖和加上注解和配置就可以了。
二、准备工作
本文使用的工程为上一篇文章的工程,在此基础上进行改造。因为我们需要多个服务的Dashboard,所以需要再建一个服务,取名为service-lucy,它的基本配置同service-hi,具体见源码,在这里就不详细说明。
三、创建service-turbine
引入相应的依赖:
<dependencies> <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> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
在其入口类ServiceTurbineApplication加上注解@EnableTurbine,开启turbine,@EnableTurbine注解包含了@EnableDiscoveryClient注解,即开启了注册服务。
@SpringBootApplication @EnableTurbine public class ServiceTurbineApplication { public static void main(String[] args) { new SpringApplicationBuilder(ServiceTurbineApplication.class).web(true).run(args); } }
配置文件application.yml:
spring: application.name: service-turbine server: port: 8769 security.basic.enabled: false turbine: aggregator: clusterConfig: default # 指定聚合哪些集群,多个使用","分割,默认为default。可使用http://.../turbine.stream?cluster={clusterConfig之一}访问 appConfig: service-hi,service-lucy ### 配置Eureka中的serviceId列表,表明监控哪些服务 clusterNameExpression: new String("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 eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/
配置文件注解写的很清楚。
四、Turbine演示
依次开启eureka-server、service-hi、service-lucy、service-turbine工程。
打开浏览器输入:http://localhost:8769/turbine.stream,界面如下:
依次请求:
打开:http://localhost:8763/hystrix,输入监控流http://localhost:8769/turbine.stream
点击monitor stream 进入页面:
可以看到这个页面聚合了2个service的hystrix dashbord数据。
源码下载:
https://github.com/forezp/SpringCloudLearning/tree/master/chapter13
五、参考文献
优秀文章推荐:
- 史上最简单的 SpringCloud 教程 | 终章
- 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
- 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
相关推荐
史上最简单的SpringCloud教程 | 第十三篇: 断路器聚合监控(Hystrix Turbine)(Finchley版本) 史上最简单的SpringCloud教程 | 第十四篇: Spring Cloud Gateway初体验 史上最简单的SpringCloud教程 | 第十五篇: Spring ...
第二课: 服务消费者(rest+ribbon) 第三课: 服务消费者(Feign) 第四课: 断路器(Hystrix) 第五课: 路由网关(zuul) ... 第十三课: 断路器聚合监控(Hystrix Turbine) 第十四课: 服务注册(consul)
在微服务架构中,Spring Cloud Hystrix 是一个关键组件,用于实现服务容错和断路器模式。Hystrix Dashboard 和 Turbine 是配套的监控工具,帮助开发者实时监控服务的运行状态,确保系统的稳定性和高可用性。下面将...
总的来说,Hystrix Dashboard是Spring Cloud微服务架构中不可或缺的一部分,它提供了一种强大的方式来监控和管理断路器的执行,确保了系统的高效和健壮。正确配置和使用Hystrix Dashboard,可以极大地帮助开发团队...
在本教程中,我们将深入探讨如何在Spring Cloud项目中整合Hystrix Dashboard,这是一个强大的工具,用于监控微服务架构中的断路器性能。Hystrix是Netflix开源的一个库,它为分布式系统提供了延迟和容错的基础设施,...
Spring Cloud 断路器集群监控(Turbine)知识点总结 在 Spring Cloud 中,断路器集群监控是指对多个服务实例的监控信息进行聚合和展示,以便更好地管理和维护分布式系统。在本文中,我们将详细介绍 Spring Cloud 断路...
Spring Cloud 也集成了一些现成的监控工具,如 Turbine 和 Hystrix Dashboard,便于对多个服务实例上的 Hystrix 监控数据进行聚合和可视化。 通过上述步骤,我们不仅能够在微服务架构中有效利用 Hystrix 实现服务...
Spring Cloud Hystrix是Spring Cloud生态中的一个关键组件,它主要负责实现服务容错和断路器模式,以提升分布式系统中的稳定性和弹性。在基于Spring Cloud构建的应用中,Hystrix能帮助我们构建出更加健壮的服务架构...
SpringCloud是中国IT行业中广泛使用的微服务框架,它基于Spring Boot的便利性,为开发者提供了构建分布式系统中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式...
Spring Cloud Hystrix 提供的断路器可以在检测到服务不可用时自动切换到“打开”状态,阻止后续请求,从而防止服务雪崩。当服务恢复后,断路器会进入半开状态,允许有限的请求尝试,以确认服务是否已恢复正常。 ###...
同时,Spring Cloud还提供了Hystrix Dashboard和Turbine来监控和聚合Hystrix命令的运行状况,帮助开发者了解服务的健康状态和性能指标。 在实际项目中,合理地配置和使用Hystrix不仅能提高系统的容错能力,还能优化...
4. **断路器聚合监控**:通过 Hystrix Turbine 将多个 Hystrix Dashboard 的监控数据聚合起来展示。 5. **服务注册 Consul**:Consul 作为一种服务发现和配置管理系统,同样可以用来替代 Eureka 实现服务注册与发现...
Spring Cloud Hystrix 是一个非常重要的工具,它提供了服务降级、断路器、线程隔离等策略,确保了微服务架构中的服务稳定性。 **服务降级**: 服务降级是指在系统负载过高或者关键服务出现问题时,为了保证核心功能...
- **Turbine**:介绍了一个聚合Hystrix监控流的工具。 - **客户端负载平衡器:Ribbon**:讨论了如何使用Ribbon实现客户端负载均衡。 - **如何加入Ribbon**:解释了如何集成Ribbon到项目中。 - **自定义Ribbon客户端*...
SpringCloud是基于Spring Boot实现的一套微服务框架,它提供了在分布式系统中常见的诸多功能,如服务发现、负载均衡、断路器模式、熔断机制、API网关、配置中心等。本篇将针对"springcloud所需安装包(实用篇)2"进行...
Hystrix是Spring Cloud中提供的断路器组件,它能够帮助系统防止级联故障并提供回退机制。Hystrix仪表板提供了实时监控和指标流的功能。而Turbine则允许你聚合来自多个Hystrix客户端的监控信息。 Ribbon是客户端负载...
Spring Cloud Netflix是另一个关键组件,它提供了Eureka用于服务发现,Ribbon用于客户端负载均衡,Hystrix用于断路器模式,Feign用于声明性REST客户端,以及Turbine和Hystrix Dashboard用于监控和管理断路器。...
- **Turbine**:介绍如何使用Turbine聚合Hystrix流。 - **TurbineStream**:讲解如何配置TurbineStream以处理Hystrix的流数据。 - **客户端负载平衡器:Ribbon**: - **如何加入Ribbon**:介绍如何将Ribbon...
Feign是一个声明式的Web服务客户端,它使得编写Web服务客户端变得简单,而Hystrix则是一个用于处理延迟和故障的库,通过断路器模式来防止服务雪崩,确保系统的稳定。 **Feign简介** Feign是基于NetFlix的一个声明式...
Spring Cloud 是一个基于 Spring Boot 实现的云应用开发工具集,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)...