0

我的技术栈包括以下内容

  • 尤里卡发现服务器
  • 祖尔网关
  • Spring 配置服务器
  • Hystrix 仪表板
  • 我启用了 Hystrix 流的核心服务。

Hystrix 仪表板工作正常,因为我可以使用服务中暴露的 hystrics.stream 进行流式传输。

但是,每当我尝试将涡轮机添加到此堆栈时,/turbine.stream 只会data: {"type":"Ping"}在浏览器上重复返回,结果 Hystrix 仪表板显示Unable to connect to Command Metric Stream

有人可以帮我找出我哪里出错了吗?

这是我的涡轮机的关键配置。TurbineAppliation 类只是一个带有 @EnableTurbineStream 的 springboot 应用程序,因此不在下面列出。

pom依赖:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.1.RELEASE</version>
</parent>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Camden.SR5</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-client</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-turbine-stream</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
    </dependency>

</dependencies>

bootstrap.yml:(请忽略 eureka 特定的配置,因为我自己没有调整它们无关紧要)。配置服务器和 eureka 设置对于所有其他运行良好的组件都是相同的。

spring:
  application:
    name: Turbine
  cloud:
    config:
      enabled: true
      discovery:
        enabled: true
        serviceId: ConfigServer

management:
  security:
    enabled: false

eureka:
  instance:
    leaseRenewalIntervalInSeconds: 10
#    leaseExpirationDurationInSeconds: 2
    preferIpAddress: true
    ipAddress: 127.0.0.1
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/discovery/eureka/ ---discovery is my eureka context root required for my app

应用程序.yml

server:
  port: 7980

info:
  component: Turbine App

turbine:
  aggregator:
    clusterConfig: MY-SERVICE
  appConfig: MY-SERVICE
  clusterNameExpression: new String('default')
  InstanceMonitor:
    eventStream:
      skipLineLogic:
        enabled: false
4

3 回答 3

0

在你的pom中用于涡轮机应用程序

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-netflix</artifactId>
            <version>1.3.0.M1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
于 2017-03-22T13:24:49.803 回答
0

在 Spring Cloud Camden SR5 的新版本中,rabbitMQ 队列从 重命名springCloudHystrixStreamturbineStreamInput。作为一种解决方法,您可以指定以前版本的spring-cloud-stream.

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-stream</artifactId>
        <version>1.1.0.RELEASE</version>
    </dependency>
于 2017-02-23T16:35:08.367 回答
0

嗨,我正在使用 Camden.SR6 处理同样的问题。

在 Turbine Service pom.xml 中添加以下内容后,我能够在 hystrix 仪表板中使用涡轮流:

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-netflix-hystrix-amqp</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bus-amqp</artifactId>
    </dependency>

我还添加: spring.rabbitmq.address=rabbit-mq-server:5672 到 bootstrap.properties 文件。

在此处输入图像描述

于 2017-04-21T12:53:34.893 回答