SpringCloud系列:13.微服务断路器聚合监控系统Hystrix Turbine

SpringCloud系列:9.微服务服务链路追踪Sleuth 当开发者进行微服务架构开发时,通常会根据业务来划分微服务,各业务之间通过REST进行调用。对于一个用户的请求,往往需要多个微服务协同才能完成处理并形成最后结果返回给用户。在这个过程中,用户请求所经过的每一个微服务都会形成一条复杂的、分布式的服务调用链路,链路中的任何一环出现问题或者网络超时,都会导致用户请求的失败。 而当这种失败的情况出现时,追踪问题便变得复杂,正是存在这样的问题,Spring ... 阅读详情

一、Hystrix Turbine

在上一章节中,我们讲解了微服务断路器监控系统Hystrix Dashboard,但是Dashboard仅仅针对于单个服务,而在Spring Cloud微服务体系中,存在着各种各样的服务,一个一个去监控显然不现实,而Hystrix Turbine恰恰解决了这个难题。

Hystrix Turbine可以说是Hystrix Dashboard的聚合版,使用上与Dashboard类似,只是它将多个仪表盘数据集合到一起,达到了统一监控的目的。

二、改造book-server

继续改造之前的项目,原有的项目中,user-server已经集成了Hystrix Dashboard,所以这里不再需要对其做任何变更修改了。

既然Turbine是监控多个微服务,那自然需要多个微服务,所以我们再次请出了我们的book-server,现在我们对book-server进行一些改造,改造思路类似于上一章user-server集成Hystrix Dashboard。

首先我们在pom文件中引入必要的依赖:spring-cloud-starter-netflix-hystrix,spring-boot-starter-actuator以及spring-cloud-starter-netflix-hystrix-dashboard。

然后是核心启动类,我们添加上@EnableHystrixDashboard开启仪表盘支持,同时也添加@EnableHystrix注解,之前book-server并没有去调用其他服务,所以也没有使用到Hystrix功能。

配置文件中,我们需要暴露出/actuator/hystrix.stream的监控地址供访问,所以在原来bus的配置中增加了hystrix.stream,当然这里也可以如上一章节一样,直接将exposure.include配置为*暴露出所有。

如果不修改配置文件暴露地址,其实也可以在启动类中提供ServletRegistrationBean的Bean对象,这两者的作用是一样的,按喜好选取。

Hystrix Dashboard和Hystrix Turbine都是监控Hystrix断路器的,只有服务使用了Hystrix才会出现监控信息,所以这里添加了一个BackApi类,类中进行了简单的@HystrixCommand处理。

至此我们对book-server的改造就完成了,访问
http://localhost:10830/actuator/hystrix.stream一样可以出现监控json信息。

同样的还有我们的http://localhost:10830/hystrix监控页面,这和我们上一章的讲解是一模一样的。

 

三、搭建Hystrix Turbine服务

现在book-server和user-server都已经拥有了Dashboard监控,那如何将他们聚集到一起呢?

为此,我们需要添加一个Turbine服务,这里我们新增turbine-server,pom依赖如下。除了spring-boot-starter-web和Eureka依赖外,就是我们的Turbine依赖。

然后我们的核心启动类上,@EnableHystrixDashboard声明开启仪表盘,@EnableTurbine注解则表明使用聚合仪表盘的支持,其他的东西都是熟悉不过的老朋友。

然后是配置文件,服务端口10860,可以看到除了turbine模块的配置外,其他的配置也都是一如既往,不做过多讲解。turbine配置中app-config表明聚合监控的服务,因为turbine-server集成了Eureka,可以从注册中心获取到对应的服务,instanceUrlSuffix.default配置监控的服务实例后缀地址,这和我们其他服务使用的相同。

到这里turbine-server就搭建完毕,我们启动前面的服务,然后再启动turbine-server。

启动完成后,我们访问http://localhost:10860/turbine.stream,注意是turbine.stream,和之前的不一样了,依旧会出现我们有些熟悉又看不懂的密密麻麻的json数据。记得提前调用Hystrix请求,否则会出现一直ping、ping的情况。

然后再访问http://localhost:10860/hystrix,会发现可视化界面与之前有了些许的变化,你没看错,book-server和user-server的Hystrix监控信息都展示到了这里,turbine-server正常运行。

源码地址: https://github.com/imyanger/springcloud-project/tree/master/p11-hystrix-turbine

SpringCloud系列:10.Spring Cloud Sleuth与Spring Cloud Bus冲突问题 在Spring Cloud Sleuth集成时,发现与Spring Cloud Bus存在冲突,这在上一章实例中已经说明及解决,这里任然单独列出,方便问题搜索,万一存在同样问题的小伙伴呢。 一、问题描述 项目已使用Spring Cloud Bus动态刷新Config配置文件,Bus使用的是RabbitMq,依赖jar为spring-cloud-starter-bus-amqp。 然后引入组件... 阅读详情

相关推荐

SpringCloud系列:4.负载均衡Ribbon及断路器Hystrix

一、负载均衡Ribbon 通过前面的例子,我们已经可以搭建自己的微服务了,例如我们的user-server和book-server,但是他们之前是相互独立的,而实际情况呢,肯定不是这样的。虽然微服务的宗旨之一是解耦,但不意味着服务间完全没有联系,那么在服务间,他们又是怎么通信的呢? Spring Cloud为我们提供了两种服务调用方式,一种是Ribbon + RestTemplate,另一种是...

Simple_Yangger的博客 753

Hystrix结合Turbine使用详述

Hystrix Dashboard虽然好用,但是它有一个缺点:一个Hystrix Dashboard只能收集一个微服务的Hystrix流。也就是说对于每个微服务,我们都需要开启一个Hystrix Dashboard来监控其健康情况。可以看到如下Hystrix Dashboard只能输入一个actuator端点地址。

Java框架、并发编程、分布式、微服务、Redis、HarmonyOS、中间件等技术 1216

SpringCloud系列:6.微服务网关服务Zuul

一、Zuul简介 在微服务场景下,随着业务的发展,原来简单的系统会变得越来越复杂,系统会由原来几个独立的微服务逐渐变成几十个、上百个甚至更多。这样如果每个服务都对外暴露自己的服务接口,将使得微服务的调用变得极其复,例如,我们访问用户微服务时,要调用用户微服务的ip1:port1/api,调用书籍微服务时要调用book-server的ip2:port2/api,随着这样的服务越来越多,基于这样的实...

Simple_Yangger的博客 608

Spring Cloud学习笔记(七)-使用Turbine聚合监控

说明:本文仅作为本人学习<<深入理解Spring Cloud与微服务构建>>一书的学习笔记,所有代码案例及文字描述均参考该书,不足之处,请留言指正,不胜感激. 一.Turbine能解决什么问题    在使用Hystrix Dashboard组件监控服务的熔断情况时,每个服务都有一个Hystrix Dashboard主页,当服务数量很多时,监控非常不方便.为了同时监控多...

fly_zhaohy的博客 4988

DPABI实战:手把手教你处理小鼠静息态fMRI数据(从Voxel Size到SPM完整流程)

本文详细介绍了使用DPABI处理小鼠静息态fMRI数据的完整流程,从Voxel Size调整到SPM分析,涵盖预处理、质量控制和可视化等关键步骤。针对小鼠数据特有的低分辨率和信噪比问题,提供了实战建议和避坑指南,帮助研究人员高效完成数据分析。

weixin_42663213的博客 477

Win11下Edge浏览器CPU占用飙升?试试这5个隐藏设置(附实测对比图)

本文详细解析了Win11下Edge浏览器CPU占用飙升的原因,并提供了5个关键设置优化方案,包括禁用硬件加速、管理扩展程序等,有效降低资源消耗。实测数据显示优化后CPU占用显著下降,适合Win11用户提升浏览器性能。

weixin_29266679的博客 1507

SpringCloudHystrix之仪表盘以及Turbine集群监控

本文描述了如何使用 turbine 来实现 hystrix 监控信息收集以及展示!

我与风来 642

vasp算表面吸附流程_VASP表面吸附计算实例分析

本文主要为了记录在学习Vasp计算过程中如何设置INCAR中的一些参数,并不着重讲解其含义,详见可自行到vasp官网查阅。其次关于建模部分也不做细致讨论,一般结构可从Materials Studio里自带的晶体数据库导出,或从三大数据库网站上下载:1、Materaials Project网址:https://materialsproject.org/(强烈推荐,邮箱注册即可使用)2、CCDC网址:...

weixin_39617669的博客 2240

微服务--Turbine聚合监控

在复杂的分布式系统中,相同服务的节点经常需要部署上百甚至上千个,很多时候,运维人员希望能够把相同服务的节点状态以一个整体集群的形式展现出来,这样可以更好的把握整个系统的状态。 为此,Netflix提供了一个开源项目(Turbine)来提供把多个hystrix.stream的内容聚合为一个数据源供Dashboard展示。 布置Hystrix Dashboard Consumer集群 其他配置同单...

yanbin 541

嘉立创EDA vs Altium Designer:新手如何选择?从界面到实战全对比

本文全面对比了嘉立创EDA与Altium Designer(AD)两大PCB设计工具,从设计哲学、界面交互、封装库管理、设计规则引擎、协作功能到成本生态六大维度进行深入分析。嘉立创EDA以极简设计和云端协作为特色,适合学生和创客快速上手;而AD则凭借专业级精准控制,成为高端电子设计的行业标准。通过实战案例和详细对比表格,帮助新手根据项目需求选择合适的EDA工具。

weixin_30296405的博客 720

YOLOv11知识蒸馏实战:让小模型拥有大模型90%精度,速度提升3倍的终极教程

在self.alpha = alpha # 蒸馏损失权重self.temperature = temperature # 温度系数,控制分布平滑度# 输出分布蒸馏(KL散度损失)# 中间特征蒸馏(MSE损失,对齐中间层特征)# 总蒸馏损失知识蒸馏是YOLOv11在“小模型高性能部署”场景的“破局之法”——它让小模型能“站在大模型的肩膀上”,兼具速度与精度。从损失函数定义到多阶段训练,再到实战落地,本教程已为你铺就了一条清晰的路径。

m0_64661770的博客 801

springCloud微服务系列——断路监控第一篇——仪表盘

目录 一、简介 二、配置    服务端 POM 注解 安全   客户端 POM  注解 feign hystrix 安全   三、使用 四、常见错误 一、简介        spring cloud对hystrix相关参数提供了一个实时监控的解决方案Hystrix Dashboard。Hystrix Dashboard提供了一个可视化界面,实时监控服务调用时的参数。...

guduyishuai的博客 1506

使用Qt Creator自带的Qt Designer构造UI界面流程总结

在本文中,我们将总结使用Qt Creator自带的Qt Designer构造UI界面的流程。在对话框中,您可以选择一个控件的信号,然后将其连接到另一个控件的槽。例如,您可以将按钮的点击信号连接到一个槽函数,以响应按钮的点击事件。右键单击窗口设计器中的空白区域,选择适当的布局管理器,如水平布局、垂直布局或网格布局。在Qt Designer中,您可以使用各种预定义的UI控件来设计应用程序的界面。现在,您可以在应用程序的源代码中使用生成的UI界面。在您的源文件中,包含相应的头文件,然后创建一个UI界面的实例。

cl6789的博客 1393

SpringCloud 微服务架构(16)- hystrix:通过Actuator 获取 hystrix的监控数据

1 hystrix 的超时时间 在之前的案例中,请求在超过1秒后都会返回错误信息,这是因为Hystix的默认超时时长为1,我们可以通过配置修改这个值: 2 Hystrix 监控平台 当请求失败,被拒绝,超时的时候,都会进入到降级方法中。但进入降级方法并不意味着断路器已经被打开。那么如何才能了解断路器中的状态呢? 除了实现容错功能,Hystrix还提供了近乎实时的监控,HystrixCommand和HystrixObservableCommand在执行时,会生成执行结果和运行指标。比如每秒的请求数量,成功

一角残叶的博客 808

【Unity 实用工具篇】✨| 使用Fungus插件制作一个对话系统,简单好学易上手

今天带来的是Unity中一款简单易用的对话插件Fungus,它是一个免费的交互式的对话系统。 Fungus是Unity免费的一款开源的插件,它可以无代码的实现玩家与NPC之间的对话,并且支持本地化,对相机、Sprite及音乐音效的控制。 学会使用该插件就可以做一些对话剧情类的游戏了,还是非常好用的,下面就来学习一下Fungus具体怎么使用吧!

努力前行,总会成为自己心中的那道光 1万+

Synthesia技术浅析(四):自然语言处理

Synthesia 的自然语言处理(NLP)模块是其核心技术之一,涵盖了文本转语音(TTS)、情感分析以及多语言支持等多个方面。

m0_75253143的博客 1166

Turbine学习笔记

Turbine学习笔记 Turbine原理 Hystrix/stream 在微服务架构中,Hystrix提供的是一种熔断机制,当分布式系统中的一个服务出现问题时,Hystrix保证该系统不产生雪崩效应,而能继续服务。Hystrix为每一个依赖服务维护一个线程池(或者信号量),当线程池占满,该依赖服务将会立即拒绝服务而不是排队等待。每个依赖服务都被隔离开来,Hystrix 会严格控制其对资源的占用,...

洪城浪子的博客 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

微服务--Turbine聚合监控分析

上文交代了简单的搭建Turbine工程,将多个Consumer节点的监控页面,聚合到Turbine的一个页面进行监控。但是结果和预期的不太一样,这边再进行梳理一下。 多Consumer集群 上文进行了Consumer集群,并且同时访问一个API服务,发现显示都是聚合在一张图中3个host ,请求成功数是3节点总请求数,这样的问题就是并不知道每台Consumer的请求情况。监控的其实是服务端的总量...

yanbin 527

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

springcloud(第五篇)springcloud turbine

spring cloud turbine简介turbine是聚合服务器发送事件流数据的一个工具,hystrix的监控中,只能监控单个节点,实际生产中都为集群,因此可以通过 turbine来监控集群下hystrix的metrics情况,通过eureka来发现hystrix服务。netflix turbine使用官方给定的war 放入tomcat中运行,修改turbine-web-1.0.0/WEB

liaokailin的专栏 3万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

SpringCloud之监控数据聚合Turbine

前言 SpringCloud 是微服务中的翘楚,最佳的落地方案。 使用 SpringCloud 的Hystrix Dashboard 组件可以监控单个应用服务的调用情况,但如果是集群环境,可能就 不能满足需求了,这时就用到了SpringCloud 另一个组件:Turbine。 Turbine 将每个应用服务的调用情况聚合在一起展示出来。 如果了解过Hystrix...

我的博客 2万+

SpringCloud系列:14.微服务管理和监控系统Spring Boot Admin

一、Spring Boot Admin Spring Boot Admin 是一个管理和监控Spring Boot 应用程序的开源软件,项目github地:https://github.com/codecentric/spring-boot-admin。 Spring Boot Admin 是一个针对spring-boot的actuator接口进行UI美化封装的监控工具,UI部分使用Angul...

Simple_Yangger的博客 1297

SpringCloud系列:11.高可用注册中心Eurake

高可用,即High Availability(HA),也就是经常说服务器可用为4个9(99.99%)或5个9(99.999%)。 在Spring Cloud体系中,生产部署时通常各个服务都是高可用的,只需要将同一服务部署在多台机器上(也可以同一机器部署多个使用不同端口,但一般不会这么做),然后注册到Eurake上即可,Eurake + Ribbon就自动帮我们解决了高可用,前面章节已经做过此类演...

Simple_Yangger的博客 1162

SpringCloud系列:5.微服务间调用Feign

一、Feign简介 上一章节我们提到,Spring Cloud为我们提供了两种服务调用方式,一种是Ribbon + RestTemplate,另一种是Feign。现在我们就来看看Feign。 Feign是Netflix开发的声明式、模板化的HTTP客户端,它可以帮助我们更快捷、优雅地调用HTTPAPI。使用Feign,我们只需要创建一个接口并注解。 在使用RestTemplate时,我们...

Simple_Yangger的博客 914

SpringCloud系列:2.Spring Boot项目搭建

Spring Cloud以Spring Boot为基石,是Spring Boot框架的延续和扩展,所以在开始Spring Cloud微服务前,我们需要先了解Spring Boot框架,如果之前没有接触过Spring Boot,也是没有关系的,相信简单的了解后你就会使用。 一、什么是Spring Boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spri...

Simple_Yangger的博客 908

SpringCloud系列:7.微服务统一配置中心Config

一、Config简介 在普通的SpringBoot单体应用中,我们常使用配置文件(application(*).properties或yml)管理应用的所有配置。而在微服务体系中,可以看成是一个个分开的SpringBoot工程,随着微服务数量的增多,配置文件也响应增加,配置管理的问题便会暴露出来。在开发阶段,不同微服务器各自管各自的配置,这样做并没有什么问题,但到了生产阶段管理起来就会很困难,尤...

Simple_Yangger的博客 716

SpringCloud系列:8.微服务消息总栈Bus

一、Bus简介 Spring Cloud Bus是一个轻量级的通信组件,它构建在Spring Cloud Stream(Spring Cloud的消息驱动)之上,可以将分布式系统中的节点与轻量级消息代理连接,从而实现状态更改广播或其他事件的广播。 实现上Spring Cloud Bus基于Spring事件驱动模型。Spring事件驱动模型包含以下3个基本概念: ·事件:Application...

Simple_Yangger的博客 654
上一篇: SpringCloud系列:12.微服务断路器监控系统Hystrix Dashboard
下一篇: 博客文章分类汇总
杨小格
博客等级 码龄10年 19粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值