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

【实战指南】DBeaver EE Windows版高效破解与配置全解析

本文详细解析了DBeaver EE Windows版的高效破解与配置方法,涵盖Java环境配置、破解包部署、配置文件修改等关键步骤,并提供了性能优化和数据库连接的最佳实践。适用于需要解锁企业版高级功能的数据库开发人员,帮助提升工作效率。

weixin_28837817的博客 1902

保姆级教程:用Python spatialdata框架搞定10x Xenium空间转录组数据(从下机到高级分析)

本教程详细介绍了如何使用Python spatialdata框架处理10x Xenium空间转录组数据,从数据获取到高级分析的全流程。涵盖环境配置、数据读取、质量控制、降维聚类、细胞注释及空间共定位分析等关键步骤,特别适合生物信息学研究者快速掌握Xenium数据分析技术。

weixin_30300225的博客 482

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

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

我与风来 642

告别代码恐惧!用KRobot图形化编程,10分钟搞定Arduino巡线小车(附完整接线图)

本文介绍如何使用KRobot图形化编程工具快速搭建Arduino巡线小车,无需编写代码。从硬件准备到逻辑构建,详细讲解传感器数据处理、电机控制优化及高级功能扩展,帮助教育工作者和创客爱好者10分钟内完成项目。

weixin_30632089的博客 394

微服务--Turbine聚合监控

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

yanbin 541

SPSS线性混合模型实战:手把手复现一篇老年认知研究的统计结果(含代码)

本文详细介绍了如何使用SPSS线性混合效应模型复现老年认知研究的统计结果,涵盖数据准备、模型构建、结果解读及可视化全流程。特别针对重复测量数据分析,提供了SPSS菜单操作与语法编写的实用技巧,帮助研究者高效处理复杂数据并验证模型假设。

weixin_42562079的博客 516

速腾R128雷达+海康全景相机ROS数据采集避坑实录:从‘雷达不转’到MATLAB标定的完整流程

本文详细记录了速腾R128激光雷达与海康威视全景相机在ROS环境下的数据采集与MATLAB标定全流程。从硬件配置的常见陷阱(如雷达旋转参数设置)、驱动编译的依赖管理,到多传感器同步的实战技巧和MATLAB标定方法,提供了完整的避坑指南和技术方案。特别针对RoboSense R128雷达和海康相机的特殊需求给出了具体解决方案。

weixin_28717807的博客 1219

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

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

guduyishuai的博客 1506

NVIDIA DGX Spark 深度应用解析:从大模型训练到边缘推理的完整实践指南

内存管理:充分利用统一内存架构,避免不必要的数据传输批处理大小:根据模型大小调整批处理大小以优化内存使用精度选择:在精度损失可接受范围内使用较低精度计算流水线优化:重叠计算和数据传输操作DGX Spark作为一个专门的AI计算平台,在大模型开发的各个阶段都能发挥重要作用。从数据预处理到模型训练,从微调到推理部署,其统一内存架构和强大的计算能力为AI开发者提供了前所未有的本地开发体验。需要注意的是,虽然DGX Spark性能强大,但合理的算法设计和系统优化仍然是获得最佳性能的关键。

time_days的博客 2871

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

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

一角残叶的博客 808

SRv6第二弹:SRv6基本概念

在SRv6网络编程中,不同的转发行为由不同的Function来标识,例如在RFC中定义了公认的End、End.X、End.DX4、End.DX6等。例如:R3使用报文的IPv6目的地址FC03::3查找Local SID表,命中到End SID,随后R3将报文SL减1,同时将SL=1的SID做为报文目标IPv6地址,并查路由表转发出去。SID支持静态配置或者动态分配,end-op、end、end.x、end-dt4、end-dt6、end-dx2推荐静态配置 ,便于网络运维,其他的SID可以动态分配。

wbyyy的博客 4249

S7-1200 PLC PID功能 | 调节PID参数

S7-1200 PLC PID功能 | 调节PID参数

Robot_PLC_HMI_Automation 1万+

Turbine学习笔记

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

洪城浪子的博客 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

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

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

yanbin 527

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

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、付费专栏及课程。

余额充值