Панель приборов Spring Turbine не работает

Я сталкиваюсь с некоторой проблемой, работая над приборной панелью турбины. Так как я могу получить поток турбины для данного кластера, но не вижу ничего на приборной панели, он просто загружается, как показано на скриншотах ниже. Пожалуйста, помогите, если какая-либо конфигурация отсутствует.

Ниже приведены мои конфигурации:

config.properties

    turbine.aggregator.clusterConfig=SpringHystrixDemo2
    turbine.instanceUrlSuffix=:9080/hystrix.stream
    turbine.EurekaInstanceDiscovery.hystrix2.instances=localhost
    InstanceDiscovery.impl=com.netflix.turbine.discovery.EurekaInstanceDiscovery.class
    turbine.InstanceMonitor.eventStream.skipLineLogic.enabled=false

Application.yml

    server:
    port: 8080

    turbine:
    aggregator:
    clusterConfig: SPRINGHYSTRIXDEMO2
    clusterNameExpression: new String("default")
    appConfig: SpringHystrixDemo2

    InstanceMonitor:
    eventStream:
    skipLineLogic:
    enabled: false

bootstrap.yml

    spring:
    application:
    name: SpringTurbine
    cloud:
    config:
    discovery:
    enabled: true

    eureka:
    instance:
    nonSecurePort: ${server.port:8080}
    client:
    serviceUrl:
    defaultZone: http://${eureka.host:localhost}:${eureka.port:8761}/eureka/

Application.java

    @SpringBootApplication
    @EnableHystrix
    @EnableEurekaClient
    @EnableHystrixDashboard
    @EnableTurbine
    public class DemoApplication {

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

Для кластера SpringHystrixDemo2 я настроил его в другом приложении, работающем на другом порту:

application.yml -

    server:
    port: 9080

    hystrix:
    command:
    RemoteMessageClientCommand:
    execution:
    isolation:
    thread:
    timeoutInMilliseconds: 5000
    RemoteMessageAnnotationClient:
    execution:
    isolation:
    thread:
    timeoutInMilliseconds: 5000

bootstrap.yml

    spring:
    application:
    name: SpringHystrixDemo2
    cloud:
    config:
    enabled: true
    discovery:
    enabled: true
    serviceId: SPRINGCONFIGSERVER

    eureka:
    instance:
    nonSecurePort: ${server.port:9080}
    client:
    serviceUrl:
    defaultZone: http://${eureka.host:localhost}:${eureka.port:8761}/eureka/

Application.java - это сервисная панель hystrix.

    @SpringBootApplication
    @EnableHystrix
    @EnableHystrixDashboard
    @EnableEurekaClient
    @EnableDiscoveryClient
    public class DemoApplication {

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

Я настроил сервер eureka на 8761 порт. который lisising всех других eureka client.as

Эврика сервер

Так я не вижу приборной панели турбины. как это только загружается. вид потока турбины

2 ответа

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

management:
  port: 9081
  contextPath: /management

Тогда поток турбины будет доступен через {yourHost}: 9081 / management / turbine.stream, в то время как панель управления hystrix будет обслуживаться в {yourhost}:9080/hystrix

Из того, что я прочитал и знал, из вашей конфигурации

turbine.aggregator.clusterConfig=SpringHystrixDemo2
turbine.instanceUrlSuffix=:9080/hystrix.stream
turbine.EurekaInstanceDiscovery.hystrix2.instances=localhost    InstanceDiscovery.impl=com.netflix.turbine.discovery.EurekaInstanceDiscovery.class
turbine.InstanceMonitor.eventStream.skipLineLogic.enabled=false

следующие может быть проблема (ы).

Вам не хватает нескольких конфигов, и, возможно, у вас есть дополнительные конфиги.

  1. Вам не нужно "turbine.EurekaInstanceDiscovery.hystrix2.instances", если у вас действительно несколько экземпляров.
  2. Вам не нужен "turbine.InstanceMonitor.eventStream.skipLineLogic.enabled", потому что по умолчанию он имеет значение false и требуется, если вы хотите, чтобы он был истинным, когда у вас высокая задержка.
  3. вам нужно "turbine.appConfig =". В вашем случае я думаю, что это что-то вроде SpringHystrixDemo2 или, возможно, hystrix2 ... используйте здесь правильное имя.
  4. вам нужен "turbine.aggregator.clusterConfig=", который работал для меня только тогда, когда я использовал в капитале, то есть HYSTRIX2
  5. если вы используете другой порт управления для своей службы, "turbine.instanceUrlSuffix.HYSTRIX2=:/hystrix.stream
  6. тогда этот "turbine.instanceInsertPort=false" отключит вставку порта по умолчанию с помощью турбины.. в основном, вы говорите eureka не вставлять какой-либо порт самостоятельно при попытке поиска hystrix.strem..

Ниже приведены мои свойства.

#turbine.clusterNameExpression=new String('default')
#turbine.clusterNameExpression="'default'"
turbine.instanceInsertPort=false
turbine.appConfig=service1
turbine.aggregator.clusterConfig=SERVICE1
turbine.instanceUrlSuffix.SERVICE1=:51512/hystrix.stream
#turbine.ConfigPropertyBasedDiscovery.USER.instances=service1-host1.abc.com,service1-host2.abc.com
InstanceDiscovery.impl=com.netflix.turbine.discovery.EurekaInstanceDiscovery.class
#for high latencies
#turbine.InstanceMonitor.eventStream.skipLineLogic.enabled=false

и попробуйте турбинный поток на

http://host:port/turbine.stream?cluster=SERVICE1
Другие вопросы по тегам