SpringCloud极简入门-服务监控-Hystrix Dashboard & Turbine

简介: Hystrix是一种服务熔断机制,其熔断降级策略有效的防止了微服务的雪崩问题,Hystrix的出现提高了微服务的可用性和健壮性,而Hystrix Dashboard则是用来监控Hystrix的熔断器状况的重要组件(又叫仪表盘),它提供了数据监控,健康状态,熔断状态,并发数量等等信息,和友好的图形化展示界面,能让使用者很好的监控和分析熔断器的状态。

十.熔断器监控-Hystrix Dashboard & Turbine

1.基本概念

1.1什么是Hystrix Dashboard

Hystrix是一种服务熔断机制,其熔断降级策略有效的防止了微服务的雪崩问题,Hystrix的出现提高了微服务的可用性和健壮性,而Hystrix Dashboard则是用来监控Hystrix的熔断器状况的重要组件(又叫仪表盘),它提供了数据监控,健康状态,熔断状态,并发数量等等信息,和友好的图形化展示界面,能让使用者很好的监控和分析熔断器的状态。如:

1.2.什么是 Turbine

Hystrix Dashboard仅支持单个微服务进行监控,在微服务架构的项目中有成百上千的微服务,这样我们就需要在每个微服务都集成Hystrix Dashboard,但是我们在查看每个微服务的监控信息的时候就需要打开每个微服务的Dashboard窗口进行查看,这样就显得极其不方便,Hystrix Turbine的作用就是把多个hystrix.stream的内容聚合为一个数据源供Dashboard展示如

2.集成Hystrix Dashboard

修改springlcoud-pay-server-1040 集成 Hystrix Dashboard

2.1.导入依赖

这里导入了hystrix的基础依赖:netflix-hystrix, 仪表盘的依赖:hystrix-dashboard ,以及微服务监控的依赖 :spring-boot-starter-actuator 如下:

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId></dependency><!-- 监控,健康检查等基础依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>

2.2.开启Hystrix Dashboard

在主启动类打标签@EnableHystrixDashboard开启HystrixDashboard仪表盘,如下:

/*** 支付的启动类* @EnableFeignClients :开启Feign支持*/@SpringBootApplication@EnableEurekaClient@EnableFeignClients("cn.itsource.springboot.feignclient")
@EnableCircuitBreaker//开启熔断器@EnableHystrixDashboard//开启HystrixDashboard仪表盘publicclassPayServerApplication1040{
publicstaticvoidmain( String[] args )
    {
SpringApplication.run(PayServerApplication1040.class);
    }
}

2.3.配置监控端点

需要在配置文件中指定HystrixDashboard监控的端点路径,如下:

management:  endpoints:    web:      exposure:        include: "*"

注意:“*”代表监控所有的资源

2.4.测试

依次启动服务,通过Feign实现服务调用之后,访问 http://localhost:1040/hystrix 出现如下界面:

解释:这里介绍了集群(Custom cluster)和单节点Hystrix监控(Single Hystrix)的访问路径,我们这里是基于单节点集成HystrixDashboard,所以在输入框中输入对应的url后,修改ip和端口,点击“Monitor Stream” ,进入如下界面:


注意:如果仪表盘中没有数据,那么会一直显示Loading..,只需要访问一下微服务,仪表盘即可采集到的数据,如果依然没有数据,那么需要检查是否开启了hystrix和托底(需要有方法熔断@HystrixCommand才会有效果)

图片中的数据意思如下:

  • 实心圆:颜色代表健康度,(绿-黄-红-橙递减);大小代表并发量。
  • 曲线:请求量的变化
  • 方法名:(userInfo)下面第一行,绿色代表成功次数,百分比代表错误比例
  • Cluster: 代表请求频率
  • Circuit: 代表是否熔断
  • Hosts、Median、Mean 代表处理速率,后面的时间代表延时时长

2.5.做个小结

现在我们可以通过Dashboard 对微服务的熔断情况做监控了,但是Dashboard 的缺点在于只能在单个服务中进行监控,如果我们需要对多个服务进行聚合监控就需要用到Turbine

3.Turbine集成

Hystrix Turbine是微服务统一监控方案,那么就需要搭建独立的监控服务来聚合所有的Hystrix Bashboard的监控信息做统一的收集和展示。另外Turbine监控微服务也需要注册到EurekaServer.

3.1.搭建工程

基于SpringBoot搭建工程 - springcloud-hystrix-turbine-1050 ,效果如下

springcloud-parent
    springcloud-hystrix-turbine-1050 //聚合监控服务
  springcloud-eureka-server-1010
  springcloud-order-server-1030
  springcloud-pay-server-1040
  springcloud-user-common
  springcloud-user-server-1020
pom.xml

3.2.导入依赖

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-netflix-turbine</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>

3.3.开启Turbine

主配置类打标签:@EnableHystrixDashboard 和 @EnableTurbine

@SpringBootApplication@EnableDiscoveryClient@EnableHystrixDashboard@EnableTurbinepublicclassTurbineServerApplication1050 {
publicstaticvoidmain(String[] args) {
SpringApplication.run(TurbineServerApplication1050.class);
    }
}

3.4.配置turbine

配置文件除了微服务的基本配置外,加入turbine的如下配置:

turbine:  aggregator:    cluster-config: default       #指定聚合哪些集群,多个使用”,”分割,默认为default  cluster-name-expression: new String("default")  #指定集群名称,默认表达式appName  app-config: order-server,pay-server  #配置Eureka中的serviceId列表,表明监控哪些服务
  • cluster-config : 制定聚合哪些集群,默认为default
  • app-config:聚合哪些微服务,跟上微服务的名字,逗号分隔

3.5.访问测试

依次启动服务,服务之间发起访问 , 浏览器访问 springcloud-hystrix-turbine-1050 工程:http://localhost:1050/hystrix 出现如下界面:

注意:这里我们使用集群方案,所以使用cluster via Turbine后面的url,在输入框输入地址后点击“Monitor Stream” 进入如下界面:

目录
相关文章
|
4月前
|
负载均衡 算法 Java
【SpringCloud(4)】OpenFeign客户端:OpenFeign服务绑定;调用服务接口;Feign和OpenFeign
Feign是一个WebService客户端。使用Feign能让编写WebService客户端更加简单。 它的使用方法是定义一个服务接口然后再上面添加注解。Feign也支持可拔插式的编码器和解码器。SpringCloud对Feign进行了封装,十七支持了SpringMVC标准注解和HttpMessageConverters。 Feign可用于Eureka和Ribbon组合使用以支持负载均衡
782 138
|
存储 数据可视化 Java
基于MicrometerTracing门面和Zipkin实现集成springcloud2023的服务追踪
Sleuth将会停止维护,Sleuth最新版本也只支持springboot2。作为替代可以使用MicrometerTracing在微服务中作为服务追踪的工具。
780 2
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
586 3
|
监控 Java 对象存储
监控与追踪:如何利用Spring Cloud Sleuth和Netflix OSS工具进行微服务调试
监控与追踪:如何利用Spring Cloud Sleuth和Netflix OSS工具进行微服务调试
245 1
|
Java API 对象存储
微服务魔法启动!Spring Cloud与Netflix OSS联手,零基础也能创造服务奇迹!
这段内容介绍了如何使用Spring Cloud和Netflix OSS构建微服务架构。首先,基于Spring Boot创建项目并添加Spring Cloud依赖项。接着配置Eureka服务器实现服务发现,然后创建REST控制器作为API入口。为提高服务稳定性,利用Hystrix实现断路器模式。最后,在启动类中启用Eureka客户端功能。此外,还可集成其他Netflix OSS组件以增强系统功能。通过这些步骤,开发者可以更高效地构建稳定且可扩展的微服务系统。
244 1
|
SpringCloudAlibaba API 开发者
新版-SpringCloud+SpringCloud Alibaba
新版-SpringCloud+SpringCloud Alibaba
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
定时任务在企业应用中至关重要,常用于异步数据处理、自动化运维等场景。在单体应用中,利用Java的`java.util.Timer`或Spring的`@Scheduled`即可轻松实现。然而,进入微服务架构后,任务可能因多节点并发执行而重复。Spring Cloud Alibaba为此发布了Scheduling模块,提供轻量级、高可用的分布式定时任务解决方案,支持防重复执行、分片运行等功能,并可通过`spring-cloud-starter-alibaba-schedulerx`快速集成。用户可选择基于阿里云SchedulerX托管服务或采用本地开源方案(如ShedLock)
458 1
|
11月前
|
负载均衡 Dubbo Java
Spring Cloud Alibaba与Spring Cloud区别和联系?
Spring Cloud Alibaba与Spring Cloud区别和联系?
|
12月前
|
人工智能 SpringCloudAlibaba 自然语言处理
SpringCloud Alibaba AI整合DeepSeek落地AI项目实战
在现代软件开发领域,微服务架构因其灵活性、可扩展性和模块化特性而受到广泛欢迎。微服务架构通过将大型应用程序拆分为多个小型、独立的服务,每个服务运行在其独立的进程中,服务与服务间通过轻量级通信机制(通常是HTTP API)进行通信。这种架构模式有助于提升系统的可维护性、可扩展性和开发效率。
4399 2
|
SpringCloudAlibaba 负载均衡 Dubbo
【SpringCloud Alibaba系列】Dubbo高级特性篇
本章我们介绍Dubbo的常用高级特性,包括序列化、地址缓存、超时与重试机制、多版本、负载均衡。集群容错、服务降级等。
1912 6
【SpringCloud Alibaba系列】Dubbo高级特性篇

热门文章

最新文章