Hystrix/Turbine 仪表板上的多个服务?
Posted
技术标签:
【中文标题】Hystrix/Turbine 仪表板上的多个服务?【英文标题】:Multiple services on a Hystrix/Turbine dashboard? 【发布时间】:2015-12-25 19:42:20 【问题描述】:我试图了解使用 Spring Boot 运行的 2 个不同服务。这两项服务都在 Eureka 中很好地注册了,现在我想在 Turbine Web 应用程序中绘制一些 Hystrix 数据。
使用 Turbine 测试单个服务时效果很好:
http://localhost:2222/hystrix.stream (service1)
http://localhost:3333/hystrix.stream (service2)
我试图在仪表板上获得一个视图,该视图绘制了这两个服务,但无论我尝试什么,都只绘制了涡轮配置中的第一个服务。
turbine:
clusterNameExpression: new String('default')
appConfig: service1,service2
我在尝试将数据输入到两种服务的turtle.stream 时似乎碰壁了。
任何提示或提示?
【问题讨论】:
【参考方案1】:为了回答我自己的问题,Turbine 似乎无法监控同一主机上的更多服务,因为它绑定到主机名。见https://github.com/Netflix/Turbine/issues/88
Turbine 有 2 种运行模式:
拉;来自不同服务流的数据由 Turbine 提取 推;使用 RabbitMQ 等 AMQP 代理将来自不同服务的数据推送到 Turbine 服务器一种解决方法是使用能够完全满足我需要的 TurbineAMQP。它涉及更多的基础设施,但运行良好!
【讨论】:
现在有一个名为turbine.combineHostPort=true
的属性可以解决您的问题,而无需使用 RabbitMQ。 Here 是 Spring Cloud Netflix 项目的相应问题。【参考方案2】:
首先,我不认为 Turbine 像 Marco 所说的那样是主机专有的
... Turbine 似乎无法监控同一主机上的更多服务,因为它绑定到主机名
我使用 Hystrix Dashboard App(不推荐)实现了 Turbine,聚合了 2 个具有相同 spring.application.name 的服务。
我发现 Turbine 收集 hystrix 流的方式是,每个 Turbine 应用程序将在 Eureka Registry 中查找具有给定名称的服务,turbine.appConfig
in application.properties
,默认为 spring.application.name
或显式为 eureka.instance.appname
您的服务,无论它们的主机如何。至此,涡轮气流已准备就绪。
将返回您在上一步中的请求中作为服务 ID 的名称列表,其中至少一个应与您在 turbine.aggregator.clusterConfig
中提供的名称列表匹配。
当您在 Hystrix Dashboard 主页上键入 http://[turbine-app-host:port]/turbine.stream?cluster=[cluster name]
时,cluster name
参数应该是来自 turbine.aggregator.clusterConfig
的匹配名称之一。
【讨论】:
以上是关于Hystrix/Turbine 仪表板上的多个服务?的主要内容,如果未能解决你的问题,请参考以下文章
第四篇(续):熔断监控Hystrix Dashboard和熔断聚合监控Hystrix Turbine
史上最简单的SpringCloud教程 | 第十三篇: 断路器聚合监控(Hystrix Turbine)
业余草 SpringCloud教程 | 第十二篇: 断路器聚合监控(Hystrix Turbine)(Finchley版本)
springcloud微服务实战:Eureka+Zuul+Feign/Ribbon+Hystrix Turbine+SpringConfig+sleuth+zipkin