Spring Cloud进阶之路 | 十二:断路器聚合监控(Turbine)
转载请注明作者及出处:
作者:银河架构师
前言
在上一篇文章Spring Cloud进阶之路 | 十一:断路器监控(Hystrix Dashboard)中,阐述了断路器监控组件的使用,可以有好的展示图形化的界面。
但是,微服务下拆分的服务那么多,还都是集群部署,这么多的断路器监控,一个一个查看显然是不可取的。另外,如果这些服务均部署在内网的话,外网想看也看不到。
要想解决这个问题,势必要聚合每个服务的Hystrix Dashboard数据,最好也能有好的以图形化界面展示。
而断路器聚合监控组件Hystrix Turbine将每个服务的Hystrix Dashboard数据进行整合,且如果单个服务的监控界面一样,提供友好的图形化界面。
准备工作
复用前一篇文章Spring Cloud进阶之路 | 十一:断路器监控(Hystrix Dashboard)的所有工程xmall-product、xmall-product-clients-ribbon、xmall-product-clients-feign。
创建聚合监控工程
依赖
引入依赖spring-cloud-starter-netflix-turbine,完整的pom文件如下。
开启聚合监控
启动类添加注解@EnableTurbine。
配置
在application.yml中,配置所要监控的服务列表、聚合监控配置。
-
关于aggregator,使用默认配置。
-
关于cluster-name-expression,也使用默认配置。特别注意,必须使用双引号为单引号转义。
-
关于instanceUrlSuffix,由于G版本框架默认前缀即为actuator/hystrix.stream,所以无需特别定义。
instanceUrlSuffix默认取值逻辑见下图:
监控
依次启动工程xmall-product、xmall-product-clients-ribbon、xmall-product-clients-feign,端口分别为8080,8082,8083。
启动工程xmall-turbine,端口为8888,注意查看控制台。
分别从服务xmall-product-clients-ribbon、xmall-product-clients-feign拉取监控信息成功,上线了这两个服务的监控信息。
访问turbine.stream,如同hystrix.stream一般,依然是一连串的ping。
访问turbine监控界面http://localhost:8888/hystrix,可以看到,同样是loading。
同样的套路,分别访问http://localhost:8082/sku/1122,http://localhost:8083/sku/1122,再次观察监控界面。
此时,界面已正常展示获取的监控数据。
再查看turbine.stream,也有了数据。
查看控制台,发现turbine框架会定时从注册中心拉取服务信息,并刷新数据。
断路器聚合监控集成成功。
源码
github
https://github.com/liuminglei/SpringCloudLearning/tree/master/12/
gitee
https://gitee.com/xbd521/SpringCloudLearning/tree/master/12/
微信搜索【银河架构师】,发现更多精彩内容。
技术资料领取方法:关注公众号,回复微服务,领取微服务相关电子书;回复MK精讲,领取MK精讲系列电子书;回复JAVA 进阶,领取JAVA进阶知识相关电子书;回复JAVA面试,领取JAVA面试相关电子书,回复JAVA WEB领取JAVA WEB相关电子书。