1.除了隔离依赖服务的调用以外,Hystrix还提供 了准实时的调用监控(Hystrix dashboard), Hystrix会持续地记录所有通过。Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。
Netfix通过hystrix-metrics- event-stream项目实现了对以上指标的监控。Spring Cloud也提供了Hystrix Dashboard的整合,对监控内容转化成可视化界面。
2.新建一个hystrixDashboard(服务监控)项目其结构如下
Pox:(SpringBoot2一定要用2.2.2RELAEASE,如果版本太高Hystrix Dashboard
会一直显示loading)
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-hystrix-dashboard</artifactId>
<!-- 默认使用的版本是 2.2.2.RELEASE-->
<version>2.2.2.RELEASE</version>
</dependency>
Application加上@EnableHystrixDashboard
@EnableHystrixDashboard
@SpringBootApplication
public class HystrixApplication {
public static void main(String[] args) {
SpringApplication.run(HystrixApplication.class, args);
}
}
Yml
server:
port: 9001
启动改项目输入网址访问http://localhost:9001/hystrix 出现如下画面则成功
3.被监控项目xml加上(dashboard一定要用2.2.2.RELELASE,否则页面加载不出来)
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
<version>2.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-hystrix-dashboard</artifactId>
<!-- 默认使用的版本是 2.2.2.RELEASE-->
<version>2.2.2.RELEASE</version>
</dependency>
新建一个HystrixMetricsStreamConfig
@Configuration
public class HystrixMetricsStreamConfig {
@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;
}
}
Yml开启端口暴露
management:
endpoints:
web:
exposure:
include: "*"
- 启动Eureka和相关服务,访问http://localhost:被监控项目端口号/actuator/hystrix.stream出现则成功
- 在9001的监控界面输入要监控的微服务(2004代表被监控的端口号)
(git地址git@gitee.com:zhu_can_admin/springcloud.git)