Hystrix / Turbine仪表板上的多项服务?

时间:2015-09-28 14:08:27

标签: spring-boot netflix-eureka hystrix netflix-zuul turbine

我正在尝试查看使用Spring Boot运行的两个不同服务。这两项服务都在Eureka上很好地注册,现在我想在Turbine webapplication中绘制一些Hystrix数据。

使用Turbine测试单一服务时效果很好:

http://localhost:2222/hystrix.stream (service1)
http://localhost:3333/hystrix.stream (service2)

我试图在仪表板上查看两个服务的视图但是我只尝试了Turbine配置中的第一个服务。

turbine:
   clusterNameExpression: new String('default')
   appConfig: service1,service2

在尝试将数据输入Turb.stream时,我似乎遇到了障碍。

任何提示或提示?

2 个答案:

答案 0 :(得分:0)

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

Turbine有两种运行模式:

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

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

答案 1 :(得分:0)

首先,我认为Turbine并不像Marco所说的那样是主人专属

  

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

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

我发现Turbine如何收集hystrix流,每个Turbine应用程序将在turbine.appConfig application.properties中使用给定名称在Eureka Registry中查找服务,默认为spring.application.nameeureka.instance.appname明确提供您的服务,无论其主机是什么。直到现在涡轮机流已准备就绪。

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

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