企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
上节内容为大家介绍了使用Hystrix DashBoard进行服务熔断降级监控,但是上一节课中,我们只能每次监控一个服务,码。在大型的微服务系统中动则几百微服务,还是需要一种把监控信息聚合起来的方式,方便我们发现集群内个服务节点中的问题。 ![](https://img.kancloud.cn/d7/3f/d73f9fcc1197cc4ae891c9fec4e28040_1084x631.png) 通过上面这张图大家可以看出来,为了达到聚合服务监控信息的效果,我们需要引入一个组件turbine,由它来完成监控信息的聚合工作。 ## 一、新建Turbine项目 新建一个Spring Boot项目,通过maven坐标引入turbin ~~~ <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-turbine</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> ~~~ ### 启动类 在启动类上使用`@EnableTurbine`注解开启 Turbine ![](https://img.kancloud.cn/33/40/3340b22b1983628d6823e2143a40af70_701x272.png) ### 配置文件 在 application.yml 加入 Eureka 和 Turbine 的相关配置 ~~~ spring: application: name: turbine-server server: port: 8773 eureka: client: service-url: defaultZone: http://zimug:centerpwd@peer1:8761/eureka/eureka/,http://zimug:centerpwd@peer2:8761/eureka/eureka/,http://zimug:centerpwd@peer3:8761/eureka/eureka/ turbine: app-config: ASERVICE-SMS,ASERVICE-RBAC cluster-name-expression: new String("default") combine-host-port: true ~~~ **参数说明** * `turbine.app-config`参数指定了需要收集监控信息的服务名,多个服务名之间用逗号分隔 * `turbine.combine-host-port`参数设置为`true`,可以让同一主机上的服务通过主机名与端口号的组合来进行区分,默认情况下会以 host 来区分不同的服务,这会使得在本地调试的时候,本机上的不同服务聚合成一个服务来统计。 * `turbine.cluster-name-expression`参数指定了集群名称为`default`,当我们服务数量非常多的时候,可以启动多个 Turbine 服务来构建不同的聚合集群,而该参数可以用来区分这些不同的聚合集群,同时该参数值可以在 Hystrix 仪表盘中用来定位不同的聚合集群,只需要在 Hystrix Stream 的 URL 中通过 cluster 参数来指定;注意:`new String("default")`这个一定要用 String 来包一下,否则启动的时候会抛出异常: ~~~ org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'default' cannot be found on object of type 'com.netflix.appinfo.InstanceInfo' - maybe not public or not valid? ~~~ ## 二、访问测试 在完成了上面的内容构建之后,我们来体验一下 Turbine 对集群的监控能力。分别启动 * eureka-server * turbine * hystrix-dashboard * 其他的微服务 访问Hystrix Dashboard并对http://localhost:8773/turbine.stream聚合结果进行监控 ![](https://img.kancloud.cn/7e/2c/7e2c4e896c45dc092234e2b32400f086_1231x247.png)