Spring Cloud——断路器监控Hystrix Dashboard&Turbine

[misc]智能车协议分析:2020网鼎杯青龙组misc_teslaaaaa_wp [misc]智能车协议分析:2020网鼎杯青龙组misc_teslaaaaa_wp 文章目录[misc]智能车协议分析:2020网鼎杯青龙组misc_teslaaaaa_wp分析log文件格式分析协议组成UDS网络传输层UDS统一诊断服务协议分析文件提取文件逆向flag计算参考链接: teslaaaaa这道题是青龙组被做出来的题目中做出来人数最少的,直到比赛快结束才有第一个人做出来,怎么说,难并不是因为脑洞大,讲道理这道题是一道好题,我当时也是肝了一天没做出来,我倒是把文件提取出来了,奈何比赛时间已经接近尾 阅读详情

在前文谈论过,服务客户端的负载均衡中,为了保证高可用的特性,我们使用了断路器Hystrix。

回顾一下,Hystrix做了什么事情呢?

在标注了HystrixCommand注解的方法中,如果该方法执行的过程中抛出了异常,并且该异常不在ignoreExceptions中,那么就会执行fallback方法。

在执行方法的过程中,Hystrix还会采集每一个HystrixCommand的信息指标,把每一个断路器的信息指标显示的Hystrix仪表盘上。这个仪表盘就是Hystrix Dashboard。

那么我们怎么使用呢?


首先需要打开Eureka Server注册中心。我的注册中心的地址是localhost:1111

然后我们新建一个项目。

在pom中增加以下依赖:

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

<!-- hystrix -->
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

然后在application配置文件中增加以下配置:

spring.application.name=node1
server.port=3334
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
在主函数中增加@EnableDiscoveryClient @EnableHystrix @EnableHystrixDashboard三个注解。

这样,配置就基本完成了。

接下来是编写业务服务。

@RestController
public class ConsumerController {
	
	@Autowired
    private ComputeService1 computeService;
	
    @RequestMapping(value = "/add", method = RequestMethod.GET)
    public String add() {
    	computeService.addService3();
    	return computeService.addService4();
    }
}

@Service
public class ComputeService1 {
	
    @Autowired
    RestTemplate restTemplate;
    
    @HystrixCommand(fallbackMethod = "addServiceFallback")
    public String addService3() {
    	int randomInt= (int)(Math.random() * 10);
        if(randomInt<8){  //模拟调用失败情况
            throw new RuntimeException("call dependency service fail.");
        }else{
            return "number:"+randomInt;
        }
    }
    
    @HystrixCommand(fallbackMethod = "addServiceFallback")
    public String addService4() {
    	int randomInt= (int)(Math.random() * 10);
        if(randomInt<6){  //模拟调用失败情况
            throw new RuntimeException("call dependency service fail.");
        }else{
            return "number:"+randomInt;
        }
    }
    
    public String addServiceFallback() {
        return "error";
    }
}

随便写个业务服务就好了,不过需要使用HystrixCommand去注解服务,并且在其中某个地方会抛出异常就可以了。

运行我们的程序。

程序运行成功之后,访问localhost:3334/hystrix。这里端口改成自己程序的端口即可。

不出意外的话就会看到这个页面了。

在中间的输入框中填入http://localhost:3334/hystrix.stream。然后点击monitor stream按钮。

就查看到了仪表盘,不过这个时候是没东西的,一直是LOAD。我们需要先访问一次localhost:3334/add,也就是我们的业务服务。然后就会连接上了。会看到这个界面:


在这里我们可以直观的看到各Hystrix Command的请求响应时间, 请求成功率等数据。可以就可以知道这个服务对应的状态和性能了。

不过这样显然是不够的,因为这样我们只能看到单个应用的服务信息。比如说,下单功能,可能需要调用几十个微服务,我们希望看到的是这个功能对应的这些微服务的性能,而不是一个微服务一个微服务的去查看。所以我们需要一个工具能让我们汇总系统内多个服务的数据并显示到Hystrix Dashboard上,使用Turbine可以做到这一点。


怎么使用turbine呢?

首先创建一个新的项目。

加入以下依赖:

<!-- eureka依赖 -->
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<!-- hystrix依赖 -->
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
</dependency>
<!-- turnbine依赖 -->
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-turbine</artifactId>
</dependency>
这里spring boot的parent使用1.3.x的版本可能会好点,反正我1.5.x的版本是跑不动的。。。

在application配置文件中增加以下配置:

eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/

turbine.appConfig=node1,node2
turbine.aggregator.clusterConfig=MAIN
turbine.clusterNameExpression=metadata['cluster']

turbine.appConfig配置是一个eureka服务ID列表,turbine将使用这个配置查询实例,这里配置了两个,一个是node1一个node2。

turbine.aggregator.clusterConfig配置集群的名字,也就是cluster。在Hystrix Dashboard中,使用http://turbine-hostname:port/turbine.stream?cluster=[clusterName]来查看这个集群对应的服务的HystrixCommand信息。这里我们创建名为MAIN的集群。

turbine.clusterNameExpression这个的意思大概是2个服务node1,node2从元数据映射,他们两个有一个或者两个会在MAIN集群中。当然,我们这里是两个都是。


最后在Main主程序中增加@EnableTurbine @EnableHystrixDashboard @EnableEurekaClient就完成了。


整个流程顺序

1.启动Eureka Server服务注册中心。

2.启动两个包含了HystrixCommand的服务客户端,这两个服务客户端的eureka.instance.hostname需要不同,我这里使用peer1和peer2,并且在etc/hosts中增加对应的映射,对应127.0.0.1.这个应该是它的BUG,如果他们两个的hostname相同的话,在Dashboard中会认为是同一个应用程序,即使他们的应用程序名称不同。最后需要在application配置文件中增加集群的映射:eureka.instance.metadata-map.cluster=MAIN

对应的application配置文件分别如下:

spring.application.name=node1
server.port=3334
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/

eureka.instance.metadata-map.cluster=MAIN
eureka.instance.hostname=peer1
spring.application.name=node2
server.port=3333
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/

eureka.instance.metadata-map.cluster=MAIN
eureka.instance.hostname=peer2

3.最后启动turbine。


都启动之后打开服务注册中心,可一看到,都注册在上面了。


访问localhost:4444/hystrix.也就是turbine对应的hystrix。可以看到熟悉的界面。


在中间输入想看的集群的服务信息,这里是MAIN。

分别访问两个业务服务,就可以在dashboard中看到他们的HystrixCommand信息了。

在这里,circuit标签下面,addService1等等都是断路器信息,如果启动了断路器,就是Open状态,可以看到addService3就是Open状态,其他都是Closed状态。而且图中可以看到错误率,addServer3是100%,等等。

Thread Pools标签是线程池的信息。更具体的信息,大家可以参考github:DashBoard

官网对应解释:



 通过Hystrix Dashboard和Turbine, 我们能够很方便地监控每个Hystrix Command的运行情况, 在出现问题的时候能够及时定位到问题所在的服务。

Windows10环境下激活虚拟环境报错【source : 无法将“source”项识别为 cmdlet、函数、脚本文件或可运行程序的名称】 在使用Django创建Web程序前,需要创建一个虚拟的工作环境,在使用【source ll_env/bin/activate】命令激活虚拟环境时报错:source : 无法将“source”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。所在位置 行:1 字符: 2。 阅读详情

相关推荐

层层剥开Allegro skill--快速抓取并写入Allegro软件【呕血创作,转载注明】

Allegro skill eda pcb

qq_36492361的博客 1252

Spring Cloud中使用Hystrix的监控及可视化面板

Hystrix是Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务和第三方库的点,防止级联故障,并使复杂的分布式系统能够更好地应对失败。Hystrix的监控作用是:在分布式系统中,实时监控服务的健康状况,当某个服务出现故障时,Hystrix能够快速地做出反应,并把故障的影响范围缩小,从而保障系统的稳定性。Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求、多少成功、多少失败等。启动类上方添加注解。

m0_70321568的博客 477

STM32+LoRa模块实战:从环境搭建到数据传输完整指南(附避坑清单)

本文提供STM32与LoRa模块从环境搭建到数据传输的完整实战指南,涵盖硬件连接、开发环境配置、AT指令设置、频段优化及低功耗设计等关键步骤,特别针对常见问题提供解决方案和避坑清单,助力物联网开发者高效实现远距离低功耗通信。

weixin_29168813的博客 290

Spring Cloud --- Turbine使用

hystrix只能实现单个微服务的监控,可是一般项目中是微服务是以集群的形式搭建,一个一个的监控不现实。而Turbine的原理是,建立一个turbine服务,并注册到eureka中,并发现eureka上的hystrix服务。通过配置turbine会自动收集所需hystrix的监控信息,最后通过dashboard展现,以达到集群监控的效果。

Daniel 1122

西门子PLC1200与CB1241模块的Modbus RTU从站配置全流程(附串口调试技巧)

本文详细介绍了西门子S7-1200 PLC与CB1241通信模块实现Modbus RTU从站配置的全流程,包括硬件接线规范、TIA Portal工程组态、通信指令编程及串口调试技巧。通过实战案例和常见错误处理方案,帮助工程师快速搭建稳定的工业通信系统,提升自动化设备的互联互通能力。

weixin_29165725的博客 325

springCloud之Hystrix监控

springCloud之服务降级熔断Hystrix。

一起coding,一起嗨。 1163

AI大模型API中转站选型指南:12项关键指标与实战评估

随着AI大模型技术的快速迭代,企业面临着一个核心挑战:如何在基础模型频繁更新的背景下,为业务系统选择稳定可靠的API中转服务?本文基于真实生产环境测试数据,从12个关键维度系统评估主流API中转站平台,帮助技术团队在模型快速演进的生态中做出科学选型决策。 1. API中转站的核心价值与业务场景 1.1 什么是API中转站 API中转站(API Gateway/Aggregator)是连接业务系统与多个大模型厂商的中间层服务。它通过统一的接口封装了不同厂商的API协议差异,为企业提供标准化的模型调用能力。在实

weixin_29056101的博客 445

springcloud3 hystrix实现服务监控显示3(了解)

hystrix提供了准实时的监控调用(hystrix dashbord),Hystrix会持续的记录所有通过hystrix发送的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。Netflix通过 hystrix-metrics-event-stream项目实现了对以上指标的监控,springcloud提供了hystrix dashbord的整合,对监控内容转化内容实现可视化界面。

健康平安的活着的专栏 448

别再只调IoU了!给YOLOv8换上NWDLoss,实测小目标检测精度提升明显

本文深入探讨了YOLOv8在小目标检测中的优化策略,重点介绍了NWDLoss(Normalized Wasserstein Distance Loss)的应用优势。通过对比实验证明,NWDLoss能有效解决传统IoU损失函数的局限性,显著提升小目标检测精度,在遥感影像和交通监控等场景中表现尤为突出。文章提供了详细的代码实现和训练技巧,帮助开发者快速集成这一先进技术。

weixin_29072299的博客 267

SAP OData 开发从入门到提高教程的目录

笔者 18 年的 SAP 技术开发生涯,对 SAP OData 服务的开发,测试,发布,部署,测试,及基于各种不同 SAP 技术实现的 OData 服务的幕后技术实现细节和使用场合,均有着深入的研究。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 7242

Spring Cloud全解析:熔断之Hystrix服务监控

Hystrix除了熔断降级之外,还提供了准实时的调用监控,持续的记录所有通过Hystrix发起的请求的执行信息,并以统计报表的形式展示出来,包括有每秒执行多少请求,多少成功,多少失败等,通过hystrix-metrics-event-stream实现对以上指标的监控。还可以用turbine-stream使用消息中间件收集数据,各个微服务将Hystrix Command的监控数据发送至消息中间件,Turbine消费消息中间件中的数据。如果是turbine集群,则填入。turbine-stream配置。

Lxn2zh的博客 745

1.5 RAG技术栈全景图:LangChain vs LlamaIndex深度对比,选错框架后悔3年,一文帮你选对

摘要:LangChain与LlamaIndex框架深度对比 本文全面对比了RAG领域两大主流框架LangChain和LlamaIndex。LangChain是通用AI应用框架,具有模块化设计和丰富生态;LlamaIndex专为RAG优化,提供开箱即用解决方案。功能对比显示,LangChain在文档加载和Agent支持方面更强,而LlamaIndex在检索策略、向量存储和多模态处理上表现更优。代码示例展示了二者实现RAG的不同方式:LangChain需要更多配置但灵活性高,LlamaIndex则提供更简洁的A

yonggeit的博客 3239

Spring Cloud 学习系列:(十)使用 Turbine 聚合监控数据

一、前言 上一篇我们使用到 /hystrix.stream 端点监控单个微服务实例。然而,使用微服架构的应用系统一般会包含若干个微服务,每个微服务通常都会部署多个实例。如果每次只能查看单个实例的监控数据,就必须在 Hystrix Dashboard 上切换想要监控的地址,这显然不方便,那如何解决呢? 二、Turbine 简介 Turbine 是一个聚合 Hystrix 监控数据的工具,它可将所有相...

riemann_的博客 793

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

用hystrix-turbine-dashboard基于consul做集群监控

文章目录用hystrix-turbine-dashboard基于consul做集群监控一、现有工程二、配置启动hystrix-turbine-dashboard 用hystrix-turbine-dashboard基于consul做集群监控 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown...

WU4566285的博客 786

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

spring cloud dashboard的简单应用

一、简介 Hystrix Dashboard是Hystrix熔断器的一个组件,它未用户提供了相对友好的图形化界面来监控接口访问数据。下面我们通过demo来学习。 二、通过demo学习 新建一个dashboard-service项目。 1、pom.xml依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifa..

unknowna的专栏 399

NTscan扫描工具

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

Day17_19_SpringCloud教程之Hystrix Turbine聚合面板

19_SpringCloud教程之Hystrix Turbine聚合面板 一. Hystrix Turbine简介 我们上一篇博客讲解了Hystrix Dashboard的功能及其实现,了解到可以给每个服务添加一个后台监控界面. 但是对我们来说,查看单个的Hystrix Dashboard数据并没有多大的价值,要想看整个系统的Hystrix Dashboard数据,我们可以使用Hystrix...

一一哥 561

Spring Cloud Learning | 第八篇:断路器集群监控(Turbine)

一. 简介       上一篇文章我们已经实现了对单个服务实例的监控,当然在实际应用中,单个实例的监控数据没有多大的价值,我们更需要的是一个集群系统的监控信息,这时我们就需要引入Turbine。Turbine能够汇集监控信息,并将聚合后的信息提供给Hystrix Dashboard来集中展示和监控。 二. 构建监控局和服务 2.1 整体结构与准备       本文的工程实现是基于上一篇文章

嵩园 6264

SpringCloud2.0微服务搭建集成Turbine遇到的一些坑以及解决办法

    由于本人最近才接触SC,一开始就是2.0以上版本开始学习搭建微服务(consul+feign+zuul+hystrix+turbine),而网上的参考资料清一色是1.0+版本,所以在搭建过程中遇到了几个坑,导致浪费了一些时间,现在就遇到问题记录下来,希望能够抛砖引玉。     搭架微服务过程中最主要问题集中在turbine这一块,接下来我详细介绍一下turbine集成过程。     首先,...

weixin_39080216的博客 1万+

SpringCloud - Spring Cloud Netflix 之 Hystrix ;turbine(十)

SpringCloud - Spring Cloud根/父项目,开发准备(二) https://blog.youkuaiyun.com/MinggeQingchun/article/details/125308948https://blog.youkuaiyun.com/MinggeQingchun/article/details/125312594 https://blog.youkuaiyun.com/MinggeQingchun/article/details/125315839Hystrix Dashboard 的主要功能是可以对某一

MinggeQingchun的博客 456

Hystrix结合Turbine使用详述

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

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

spring Turbine断路聚合监控(监控多项目)

一、Hystrix Turbine简介 看单个的Hystrix Dashboard的数据并没有什么多大的价值,要想看这个系统的Hystrix Dashboard数据就需要用到Hystrix Turbine。Hystrix Turbine将每个服务Hystrix Dashboard数据进行了整合。Hystrix Turbine的使用非常简单,只需要引入相应的依赖和加上注解和配置就可以了。 二、准备工作 本文使用的工程为上一篇文章的工程,在此基础上进行改造。因为我们需要多个服务的Dashboard,所以需要再建

qq_44691484的博客 444

springcloud(五):熔断监控Hystrix Dashboard和Turbine

Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command的请求响应时间, 请求成功率等数据。但是只使用Hystrix Dashboard的话, 你只能看到单个应用内的服务信息, 这明显不够. 我们需要一个工具能让我们汇总系统内...

weixin_34376986的博客 935

Spring cloud系列十二 监控Hystrix界面:Hystrix dashboard 和 Turbine

Hystrix dashboard可以实时监控Hystrix的运行情况。但是Hystrix dashboard只能对单台进行监控。但是在实际系统中,通常不止一个服务,为了方便监控,我们需要将多个Hystrix dashboard的数据汇总在一个dashboard中展示出来, 这个工具就是Turbine。 本文演示Hystrix dashboard和Turbine的用法

不积跬步无以至千里; 不积小流无以成江海 6493

springcloud-dashboard、turbine监控hystrix的使用

在hystrx中将线程数目等设置完成后,可以通过Dashboard或者Turbine对其进行监控,在使用的使用一般会有1-2S的延迟,对于这两者的区别,Dashboard就是一个数据的展示面板,可以对单机的内容进行监控;而Turbine则是将多个相同的服务数据在Dashboard进行汇总展示,下图展示了turbine汇总数据的形式。 不管Dashboard还是Turbine都是作为独立的服务

maoyeqiu的专栏 3124

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万+
上一篇: Spring Cloud刷新配置中心配置——消息总线RabbitMQ
下一篇: Spring Boot——缓存支持1(EhCache)
a60782885
博客等级 码龄11年 97粉丝 67原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值