2

我在处理涡轮仪表板时遇到了一些问题。因为我能够获得给定集群的涡轮流,但无法在仪表板上看到任何内容,因为它刚刚被加载,如下面的屏幕截图所示。如果缺少任何配置,请提供帮助。

以下是我的配置:

配置属性

    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

应用程序.yml

    server:
    port: 8080

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

    InstanceMonitor:
    eventStream:
    skipLineLogic:
    enabled: false

引导程序.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/

应用程序.java

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

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

对于集群 SpringHystrixDemo2,我在其他端口上运行的不同应用程序中对其进行了配置:

应用程序.yml -

    server:
    port: 9080

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

引导程序.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);
    }
    }

我已经在 8761 端口上配置了 eureka 服务器。这正在侦听所有其他 eureka client.as

尤里卡服务器

这就是我无法看到任何涡轮仪表板的原因。因为它刚刚被加载。 涡轮流视图

4

2 回答 2

0

根据我的阅读和了解,根据您的配置

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,如果您希望它在您有高延迟时为 true,则需要它。
  3. 你需要“turbine.appConfig=”。在您的情况下,我认为它类似于 SpringHystrixDemo2 或 hystrix2 ...在这里使用正确的名称。
  4. 你需要 "turbine.aggregator.clusterConfig=" 只有当我在 CAPITAL 即 HYSTRIX2 中使用时才对我有用
  5. 如果您在服务上使用不同的管理端口,“turbine.instanceUrlSuffix.HYSTRIX2=:/hystrix.stream
  6. 那么这个“turbine.instanceInsertPort=false”将禁用turbine的默认端口插入。基本上,你是在告诉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
于 2017-04-19T17:44:12.543 回答
0

我想到的第一件事是您可以像这样声明一个管理端点:

management:
  port: 9081
  contextPath: /management

然后可以通过{yourHost}:9081/management/turbine.stream访问涡轮流,而 hystrix 仪表板将在{yourhost}:9080/hystrix下提供

于 2016-07-01T14:08:55.967 回答