ITPub博客

首页 > 架构设计 > 软件结构 > (31)java Spring Cloud企业快速开发架构之SpringCloud-使用Turbine实现集群监控

(31)java Spring Cloud企业快速开发架构之SpringCloud-使用Turbine实现集群监控

原创 软件结构 作者:JIAN2 时间:2021-09-23 10:32:47 0 删除 编辑


  前面我们实现了对单个服务实例的监控,当然在实际应用中,单个实例的监控数据没有多大的价值,我们更需要的是一个集群系统的监控信息,这时我们就需要 Turbine。需要框架源码请看我个人简介 

 Turbine 是用来监控集群的,通过它来汇集监控信息,并将聚合后的信息提供给 Hystrix Dashboard 来集中展示和监控。

Turbine 使用
Turbine 是聚合服务器发送事件流数据的一个工具。Hystrix 只能监控单个节点,然后通过 dashboard 进行展示。实际生产中都为集群,这个时候我们可以通过 Turbine 来监控集群下 Hystrix 的 metrics 情况,通过 Eureka 来发现 Hystrix 服务。
本节在介绍 Turbine 的用法时就不再单独创建一个新项目了,在之前的 hystrix-dashboard-demo 中进行修改来支持 Turbine 即可。

首先增加 Turbine 的依赖,代码如下所示。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-turbine</artifactId>
</dependency>


在启动类上增加 @EnableTurbine 和 @EnableDiscoveryClient。在属性文件中配置如下内容:

eureka.client.serviceUrl.defaultZone=
turbine.appConfig=hystrix-feign-demo
turbine.aggregator.clusterConfig=default
turbine.clusterNameExpression=new String("default")


其中:

turbine.appConfig:配置需要聚合的服务名称。
turbine.aggregator.clusterConfig:Turbine 需要聚合的集群名称。
turbine.clusterNameExpression:集群名表达式。
这里用默认的集群名称 default。

重启服务,就可以使用  来访问集群的监控数据了。Turbine 会通过在 Eureka 中查找 homePageUrl 加上 hystrix.stream 来获取其他服务的监控数据,并将其汇总显示。

context-path 导致监控失败
如果被监控的服务中设置了 context-path,则会导致 Turbine 无法获取监控数据,如图 1 所示。

这个时候需要在 Turbine 中指定 turbine.instanceUrlSuffix 来解决这个问题:

turbine.instanceUrlSuffix=/sub/hystrix.stream


sub 用于监控服务的 context-path。上面这种方式是全局配置,会有一个问题,就是一般我们在使用中会用一个集群去监控多个服务,如果每个服务的 context-path 都不一样,这个时候有一些就会出问题,那么就需要对每个服务做一个集群,然后配置集群对应的 context-path:

turbine.instanceUrlSuffix. 集群名称 =/sub/hystrix.stream



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70006413/viewspace-2793198/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
华为资深架构师,曾参与华为数据中心迁移解决方案!有需要了解分布式微服务电商源码的朋友可以+我 v ❤: haiwabbc2 , 10余年互联网研发行业经验!博客里面是个人的一点技术总结,希望能够帮助到更多的IT朋友成长!

注册时间:2021-09-06

  • 博文量
    1404
  • 访问量
    622719