Hystrix的主要优点之一是它收集关于每个HystrixCommand的一套指标。Hystrix仪表板以有效的方式显示每个断路器的运行状况。
首先创建一个maven子项目添加一下依赖信息:pom.xml
<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.study.springcloud</groupId>
<artifactId>spring-cloud-study</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>study-7-spring-cloud-hystrix-dashboard</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-hystrix-dashboard -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
添加配置文件 bootstrap.yml
spring:
application:
name: spring-cloud-hystrix-dashboard
cloud:
config:
uri: http://localhost:8888/config/
label: master
GIT仓库添加配置文件
server:
port: 20010
servlet:
context-path: /monitoring
或者不用spring-cloud-config服务直接添加配置文件application.yml
server:
port: 20010
servlet:
context-path: /monitoring
启动类上加上注解@EnableHystrixDashboard
/**
* <p>启动类<p>
* @Author Bertram.Wang
* @Date 2019年3月12日
*/
@SpringBootApplication
@EnableHystrixDashboard
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
启动项目;访问 http://localhost:20010/monitoring/hystrix
![](https://img.haomeiwen.com/i10879157/5c4e43dc04b79cb9.png)
改造需要监控的项目,要使Hystrix指标流,需要spring-boot-starter-actuator的依赖。使/hystrix.stream作为管理端点。
项目study-0-spring-cloud-api 添加以下依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
重新启动API项目
![](https://img.haomeiwen.com/i10879157/a2015673c065d876.png)
并没有找到端点"/hystrix.stream";
访问http://localhost:8080/myapi/hystrix.stream 返回404异常信息
使用springcloud版本Finchley.SR2 时,需要自定义HystrixMetricsStreamServlet。
所在我们在启动类加入注入bean。
@Bean("HystrixMetricsStreamServlet")
public ServletRegistrationBean<HystrixMetricsStreamServlet> hystrixMetricsStreamServlet() {
ServletRegistrationBean<HystrixMetricsStreamServlet> registrationBean;
registrationBean = new ServletRegistrationBean<>(new HystrixMetricsStreamServlet());
registrationBean.setLoadOnStartup(1);
registrationBean.addUrlMappings("/hystrix.stream");
return registrationBean;
}
重新启动API项目。
![](https://img.haomeiwen.com/i10879157/7d805400ebdba199.png)
再次访问 http://localhost:8080/myapi/hystrix.stream
![](https://img.haomeiwen.com/i10879157/1b1b550899477ed2.png)
一直打印ping: 所以我们优先访问以下其他的链接示例:http://localhost:8080/myapi/hello
再次访问http://localhost:8080/myapi/hystrix.stream
![](https://img.haomeiwen.com/i10879157/7ca48d669e8a47fc.png)
说明成功了。最后设置监控版
![](https://img.haomeiwen.com/i10879157/346566e79120efa3.png)
![](https://img.haomeiwen.com/i10879157/3155660ac320b51f.png)
网友评论