2015-09-28 8 views
0

Я пытаюсь получить представление о 2 различных сервисах, работающих с использованием Spring Boot. Обе службы хорошо зарекомендовали себя в Eureka, и теперь я хочу получить некоторые данные Hystrix, представленные в веб-приложении Turbine.Несколько сервисов на приборной панели Hystrix/Turbine?

При тестируя отдельные услуги с использованием турбины, он прекрасно работает:

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

Я пытаюсь получить вид на приборной панели, которая Участки под Застройку и услуг, но и то, что я стараюсь только первую службу в Turbine Конфигурация построена.

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

Я, кажется, попал в стену, пытаясь получить данные в турбину.stream для обеих служб.

Какие-либо подсказки или подсказки?

ответ

0

Чтобы ответить на мой собственный вопрос, кажется, что Turbine не может контролировать больше сервисов на том же хосте, что и привязка к имени хоста. См https://github.com/Netflix/Turbine/issues/88

Турбина имеет 2 рабочие модели:

  • тянуть; данные из отдельных потоков обслуживания вытягиваются турбиной
  • push; Данные из отдельных услуг выталкиваются на сервер Турбина с помощью AMQP брокера, такие как RabbitMQ

Обойти это можно использовать TurbineAMQP, которая способна делать точный материал, который я нуждался. Это предполагает немного больше инфраструктуры, но работает красиво!

+0

К настоящему времени есть свойство под названием 'turbine.combineHostPort = true', которое должно решить вашу проблему без использования RabbitMQ. [Здесь] (https://github.com/spring-cloud/spring-cloud-netflix/issues/1087) является соответствующей проблемой из проекта Spring Cloud Netflix. – Philipp

0

Во-первых, я не думаю, что турбина-хозяин эксклюзивным, как Марко говорил

... кажется, что турбина не может контролировать больше услуг на том же хосте, как он связан с именем хоста

Я применил турбину с приложением Hystrix Dashboard (которое не рекомендуется), агрегируя 2 службы с тем же spring.application.name.

Я нашел, как турбина собирает Hystrix поток является то, что каждое приложение Turbine будет искать услуги в Eureka реестра с данным именем по turbine.appConfig в application.properties, который является spring.application.name по умолчанию или eureka.instance.appname явно ваших услуг, независимо от хозяев из них. До настоящего времени поток турбины готов.

Будет возвращен список имен в качестве идентификаторов услуг из вашего запроса на предыдущем шаге, и по крайней мере один из них должен соответствовать списку имен, которые вы указываете в turbine.aggregator.clusterConfig.

Когда вы вводите http://[turbine-app-host:port]/turbine.stream?cluster=[cluster name] на домашней странице панели приборов Hystrix, параметр cluster name должен быть одним из совпадающих имен от turbine.aggregator.clusterConfig.