Пружинная загрузка, эврика, hystrix, турбина: турбина всегда показывает 0 хостов

У меня есть реализация турбины, которая может обнаружить работающие сервисы через Eureka:

2015-09-08 11:40:13.727  INFO 13112 --- [        Timer-0] o.s.c.n.turbine.EurekaInstanceDiscovery  : Fetching instance list for apps: [policy-service]
2015-09-08 11:40:13.727  INFO 13112 --- [        Timer-0] o.s.c.n.turbine.EurekaInstanceDiscovery  : Fetching instances for app: policy-service
2015-09-08 11:40:13.727  INFO 13112 --- [        Timer-0] o.s.c.n.turbine.EurekaInstanceDiscovery  : Received instance list for app: policy-service, size=1
2015-09-08 11:40:13.727  INFO 13112 --- [        Timer-0] c.n.t.discovery.InstanceObservable       : Retrieved hosts from InstanceDiscovery: 1
2015-09-08 11:40:13.728  INFO 13112 --- [        Timer-0] c.n.t.discovery.InstanceObservable       : Found hosts that have been previously terminated: 0
2015-09-08 11:40:13.728  INFO 13112 --- [        Timer-0] c.n.t.discovery.InstanceObservable       : Hosts up:1, hosts down: 0

Hystrix работает на клиентском приложении, policy-service. Я могу просмотреть его поток и увидеть его на панели инструментов Hystrix.

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

: ping
data: {"reportingHostsLast10Seconds":0,"name":"meta","type":"meta","timestamp":1441734488823}

и когда я вижу его в панели управления Hystrix с URI http://localhost:8095/turbine.stream?cluster=DEVЯ просто вижу "Загрузка..."

Я перепробовал все упомянутое в этом посте безрезультатно.

Вот приложение application.yml моих турбинных сервисов:

turbine:
  aggregator:
    clusterNameExpression: new String("default")
    clusterConfig: DEV
    #http://localhost:8095/turbine.stream?cluster=DEV
  appConfig: policy-service
  InstanceMonitor:
    eventStream:
      skipLineLogic:
        enabled: false

Я пробовал это без clusterConfig и без clusterNameExpression.

Вот мой bootstrap.yml:

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
spring:
  application:
    name: turbine-service
server:
  port: 8095

И вот мой источник:

package com.ml.turbine;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.turbine.EnableTurbine;

@SpringBootApplication
@EnableTurbine
@EnableEurekaClient
public class TurbineService {

    public static void main(String[] args) {
        SpringApplication.run(TurbineService.class, args);
    }
}

Когда я нажимаю на поток своей турбины в браузере, журнал гласит:

2015-09-08 14:03:19.967  INFO 12024 --- [nio-8095-exec-4] c.n.t.s.servlet.TurbineStreamServlet     : FilterCriteria: []
2015-09-08 14:03:19.967  INFO 12024 --- [nio-8095-exec-4] c.n.t.s.servlet.TurbineStreamServlet     : StatsType filters: []
2015-09-08 14:03:19.967  INFO 12024 --- [nio-8095-exec-4] c.n.t.s.TurbineStreamingConnection       : Relevance config: []
2015-09-08 14:03:19.967  INFO 12024 --- [nio-8095-exec-4] c.n.t.s.TurbineStreamingConnection       : Relevance metrics config: {}
2015-09-08 14:03:19.967  INFO 12024 --- [nio-8095-exec-4] c.n.t.monitor.cluster.ClusterMonitor     : Registering event handler for cluster monitor: StreamingHandler_92386c8c-b263-4548-be07-10c1a2a3dc27
2015-09-08 14:03:19.967  INFO 12024 --- [nio-8095-exec-4] c.n.t.handler.TurbineDataDispatcher      : 

Just added and starting handler tuple: StreamingHandler_92386c8c-b263-4548-be07-10c1a2a3dc27
2015-09-08 14:03:19.968  INFO 12024 --- [nio-8095-exec-4] c.n.turbine.data.AggDataFromCluster      : Per handler dispacher started for: StreamingHandler_92386c8c-b263-4548-be07-10c1a2a3dc27
2015-09-08 14:03:19.973  INFO 12024 --- [nio-8095-exec-4] c.n.t.monitor.cluster.ClusterMonitor     : All event handlers for cluster monitor: [StreamingHandler_92386c8c-b263-4548-be07-10c1a2a3dc27, StreamingHandler_deaba37e-b712-49db-beba-ab9f60848118, StaticListener_For_Aggregator, StreamingHandler_42896dd8-5d90-43c2-89ad-f57151b94894]
2015-09-08 14:03:19.974  INFO 12024 --- [nio-8095-exec-4] c.n.t.monitor.cluster.ClusterMonitor     : Starting up the cluster monitor for DEV_agg

Почему я ничего не получаю в своем потоке турбины, когда он подключен к сервису политик, а поток Hystrix работает как надо?

1 ответ

Решение

Оказывается, мой application.yml был настроен неправильно.

Отсюда:

ClusterName может быть настроено с помощью выражения SPEL в turbine.clusterNameExpression с корневым экземпляром InstanceInfo. Значением по умолчанию является appName, что означает, что serviceId Eureka заканчивается как ключ кластера (то есть InstanceInfo для клиентов имеет appName "CUSTOMERS").

Мой application.yml теперь выглядит так:

turbine:
  aggregator:
    clusterNameExpression: new String("default")
    clusterConfig: POLICY-SERVICE
    #http://localhost:8095/turbine.stream?cluster=POLICY-SERVICE
  appConfig: policy-service
Другие вопросы по тегам