Spring Cloud 入门教程 - 使用 Hystrix Dashboard 监控熔断器的状态
注意:这里用到的项目都是在之前几篇文章讲解用到的项目工程基础上进行的,在这一系列博客写完后会提供源码地址。
项目源码及相关说明请查看此文:[Spring Cloud 入门教程-简介](()
在微服务架构中,为了保证服务实例的可用性,防止服务实例出现故障导致线程阻塞,而出现了熔断器模型。熔断器的状况反映了一个程序的可用性和健壮性,它是一个重要指标 Hystrix Dashboard 是监控 Hystriⅸx 的熔断器状况的一个组件,提供了数据监控和友好的图形化展示界面。本节在上一节的基础上,以案例的形式讲述如何使用 Hystrix Dashboard 监控熔断器的状态。
在 restTemplate 中使用 Hystrix Dashboard
==================================
修改 eureka-client-ribbon 项目,添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<d 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》开源 ependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>
在启动类 EurekaClientRibbonApplication 上添加注解 @EnableHystrixDashboard。
@EnableHystrixDashboard
@EnableHystrix
@EnableEurekaClient
@SpringBootApplication
@ComponentScan("com.springcloud.demo.eurekaclientribbon")
public class EurekaClientRibbonApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaClientRibbonApplication.class, args);
}
}
还需要添加 ServletRegistrationBean ,这是新版本做的修改,这里在 RibbonConfig 中添加。
@Bean
public ServletRegistrationBean getServlet() {
HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);
registrationBean.setLoadOnStartup(1);
registrationBean.addUrlMappings("/actuator/hystrix.stream");
registrationBean.setName("HystrixMetricsStreamServlet");
return registrationBean;
}
启动 eureka-server,eureka-client,eureka-client-riibon,浏览器请求[http://localhost:8795/hystrix](()
在界面上分别输入[http://localhost:8795/actuator/hystrix.stream]((),2000,ribbon,点击 Monitor Stream,界面出现两个 loading。。。请求[http://localhost:8795/main](()调用 eureka-client 中的服务。
界面如上图。多次点击后灰色的小圆圈会变大,直线会上扬,具体效果自己验证。
在 feign 中的配置与 ribbon 相同,这里不再赘述。
使用 Turbine 中聚合监控
= Java 开源项目【ali1024.coding.net/public/P7/Java/git】 ==============
在使用 Hystrix Dashboard 组件监控服务的熔断器状况时,每个服务都有 Dashboard 主页,当服务数量很多时,监控非常不方便。为了同时监控多个服务的熔断器的状 Turbine 用于聚合多个 Hystrix Dashboard, Netflix 开源了 Hystrix 的另一个组件 Turbine
将多个 Hystrix Dashboard 组件的数据放在一个页面上展示,进行集中监控。
创建新的 Module eureka-monitor-client
pom.xml 如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.springcloud.demo</groupId>
技术学习总结
学习技术一定要制定一个明确的学习路线,这样才能高效的学习,不必要做无效功,既浪费时间又得不到什么效率,大家不妨按照我这份路线来学习。
最后面试分享
大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!
评论