0

我试图了解使用 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 时,我似乎碰壁了。

任何提示或提示?

4

2 回答 2

0

为了回答我自己的问题,Turbine 似乎无法监控同一主机上的更多服务,因为它绑定到主机名。见https://github.com/Netflix/Turbine/issues/88

Turbine 有 2 种运行模式:

  • 拉; 来自不同服务流的数据由 Turbine 提取
  • 推; 通过使用 AMQP 代理(例如 RabbitMQ)将来自不同服务的数据推送到 Turbine 服务器

一种解决方法是使用能够准确完成我需要的东西的 TurbineAMQP。它涉及更多的基础设施,但效果很好!

于 2015-09-30T05:39:34.163 回答
0

首先,我不认为 Turbine 像 Marco 所说的那样是主机专有的

...似乎 Turbine 无法监控同一主机上的更多服务,因为它绑定到主机名

我使用 Hystrix Dashboard App(不推荐)实现了 Turbine,聚合了 2 个具有相同 spring.application.name 的服务。

我发现 Turbine 收集 hystrix 流的方式是,每个 Turbine 应用程序都会在 Eureka Registry 中查找具有给定名称的服务turbine.appConfigin application.properties,这是spring.application.name默认或eureka.instance.appname明确的服务,无论它们的主机如何。到目前为止,涡轮流已准备就绪。

将返回您在上一步中的请求中作为服务 ID 的名称列表,其中至少一个应与您在 中提供的名称列表匹配turbine.aggregator.clusterConfig

当您http://[turbine-app-host:port]/turbine.stream?cluster=[cluster name]在 Hystrix Dashboard 的主页上键入时,cluster name参数应该是匹配的名称之一turbine.aggregator.clusterConfig

于 2017-09-25T21:39:03.447 回答