第十九节--Hystrix图形化Dashboard
概述?
除了隔离依赖服务的调用以外,Hystrix还提供了准时的调用监控(dashboard),hystrix会持续地记录所有通过hystrix发起的请求的执行信息
,并以报表和图像的形式展示给用户,包括每秒执行多少请求成功,多少失败等。对监控内容转化成可视化界面
操作
第一步:新建工程cloud-consumer-hystrix-dashboard9001 ,pom.xml新加依赖
<!--hystrix dashboard--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId> </dependency>
第二步:yml文件
server:
port: 9001
第三步:主启动类,启动图形界面监控@EnableHystrixDashboard
@EnableHystrixDashboard @SpringBootApplication public class HystrixDashboard { public static void main(String[] args) { SpringApplication.run(HystrixDashboard.class,args); } }
第四步:启动项目9001,访问 http://localhost:9001/hystrix 即可
第五步:现在去监控cloud-provider-hystrix-payment8001工程,所监控的工程必须有下面两个包,否则监控不了
<!-- actuator监控信息完善 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
监控的工程也必须在主启动类加上一下代码,否则会提示说找不了监控,这是因为因为springboot升级到2.x版本之后存在的bug
/** * 为了服务监控配置,与服务容错无关,springboot升级之后的bug * ServletRegistrationBean因为springboot默认路径不是 /hystrix.stream * 只要在自己需要监控的项目上配置一下即可 */ @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; }
第六步:9001去监控cloud-provider-hystrix-payment8001,启动一个eureka和这两个项目,访问上一节配置的容错方法,根据不同的id查找
多点击几次,如何去操作9001
id传正确时>0:容错是显示关闭Closed
id传错误<0时:容错是显示开启:Open