Hystrix Dashboard是熔断器状态的一个组件,提供了数据监控和图形化界面。
One of the main benefits of Hystrix is the set of metrics it gathers about each HystrixCommand. The Hystrix Dashboard displays the health of each circuit breaker in an efficient manner.
基于上一节的例子来改造一下项目代码,在Service-Consumer中加入Hystrix Dashboard
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.dothwinds</groupId>
<artifactId>spring-cloud-study</artifactId>
<version>1.0.0</version>
</parent>
<groupId>org.dothwinds</groupId>
<artifactId>spring-cloud-study-service-consumer</artifactId>
<version>1.0.0</version>
<name>spring-cloud-study-service-consumer</name>
<dependencies>
<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>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<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>
</dependencies>
</project>
启动类加入@EnableHystrixDashboard注解
package org.dothwinds.serviceconsumer;
import com.netflix.hystrix.contrib.metrics.eventstream.HystrixMetricsStreamServlet;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
@EnableHystrix
@EnableHystrixDashboard
public class SpringCloudStudyServiceConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringCloudStudyServiceConsumerApplication.class, args);
}
//注入restTemplate
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
@Bean
public ServletRegistrationBean getServlet() {
HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);
registrationBean.setLoadOnStartup(1);
registrationBean.addUrlMappings("/hystrix.stream");
registrationBean.setName("HystrixMetricsStreamServlet");
return registrationBean;
}
}
如上,我们需要加入一个Servlet的注册Bean,原因请参考:https://blog.youkuaiyun.com/Dothwinds/article/details/104799646
然后访问/hystrix,并将Dashboard指向hystrix客户端应用程序中单个实例的/hystrix.stream端点,之后点击下面的Monitor按钮。


访问我们之前写过的接口地址,由于Service-Provider 服务没有启动,会触发熔断,那么Hystrix Dashboard就会收集到信息。

多刷新几次上面的地址,可以看到Hystrix Dashboard的信息

参考资料:https://cloud.spring.io/spring-cloud-static/Greenwich.SR5/single/spring-cloud.html
代码:https://gitee.com/dothwinds/Spring-Cloud-Study/tree/master/spring-cloud-study-hystrix
本文详细介绍了如何在Spring Cloud项目中引入Hystrix Dashboard,通过配置Maven依赖和添加@EnableHystrixDashboard注解,实现对熔断器状态的监控。通过访问/hystrix并设置Dashboard指向/hystrix.stream端点,可以实时查看各服务的健康状况。
725

被折叠的 条评论
为什么被折叠?



