Spring Cloud 提供了很多的组件,你能想到的功能,Spring Cloud 提供的都有。前面我们写了 hystrix,但是 hystrix 有一个问题,那就是我能不能对发生断路或者熔断的服务做一个统计呢?答案当然是可以的。本文将借助 Hystrix Dashboard 来为大家实现一个简单的 hystrix 断路器(熔断器)监控。
Hystrix Dashboard 可以单独部署,也可以做集群。断路器的状况反应了一个程序的可用性和健壮性,它是一个重要指标。Hystrix Dashboard是作为断路器状态的一个组件,提供了数据监控和友好的图形化界面。下面我们一起来看看 Hystrix Dashboard 是如何使用的。
同样的,我们再创建一个工程 xttblog-hystrix-dashboard。pom.xml 文件中比 xttblog-feign-hystrix 多出了一下配置:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
application.yml 中只是改了 spring.application.name 和端口的配置:
server: port: 8777 eureka: instance: hostname: localhost client: serviceUrl: defaultZone: http://${eureka.instance.hostname}:8761/eureka/ spring: application: name: xttblog-hystrix-dashboard feign: hystrix: enabled: true
然后启动类上,需要加上 @EnableHystrixDashboard 和 @EnableCircuitBreaker 注解:
@SpringBootApplication @EnableDiscoveryClient @EnableFeignClients @EnableHystrixDashboard @EnableCircuitBreaker public class HystrixDashboardApplication { public static void main(String[] args) { SpringApplication.run(HystrixDashboardApplication.class, args); } }
Controller 中的内容和 xttblog-cloud-consumer 中的类似,我就不在贴出来了。
最后,我们依次启动 xttblog-config-server、xttblog-cloud-producer 和我们刚创建的 xttblog-hystrix-dashboard。然后在浏览器地址栏里输入 启动工程后访问 http://localhost:8777/hystrix,我们将会看到有刺猬的界面。
访问http://localhost:8888/hystrix.stream 也会不断的显示ping。当我们访问 http://localhost:8777/test/radd?a=22&b=13 后,才会看到具体的监控效果。Hystrix Dashboard 仪表盘其实就是将监控信息以图表的形式给展现出来了。而且这个图表看起来并不漂亮,并不符合中国人的审美观。关于每个具体的监控指标,大家可以参考:https://github.com/Netflix/Hystrix/wiki。后面等我时间了再翻译一些给大家!
本文源代码以上传至:https://github.com/xmt1139057136/xttblog-cloud,有需要的可以去下载!
: » Spring Cloud 教程第十章 熔断监控 Hystrix Dashboard(仪表盘)使用教程
原创文章,作者:wure,如若转载,请注明出处:https://blog.ytso.com/251831.html