spring-boot - 如何在 Turbine 中添加额外的 Hystrix 指标聚合

标签 spring-boot spring-cloud netflix hystrix turbine

我的设置是使用 Netflix 库的 Spring Boot Cloud
我设法让 Turbine 从一项服务中聚合 Hystrix 指标。但是,当我添加更多服务时,我看不到它们。

这是我的设置(也将其上传到 github:
Project On Github

服务一:

飞行整合服务:

@SpringBootApplication
@EnableCircuitBreaker
@EnableDiscoveryClient
@ComponentScan("com.bootnetflix")
public class FlightIntegrationApplication {
..
}

application.yaml

server:
  port: 0

eureka:
  instance:
    leaseRenewalIntervalInSeconds: 10
    metadataMap:
      instanceId: ${vcap.application.instance_id:${spring.application.name}:${spring.application.instance_id:${random.value}}}
  client:
    registryFetchIntervalSeconds: 5

bootstrap.yaml

spring:
  application:
    name: flight-integration-service

服务二:

优惠券服务:
@SpringBootApplication
@EnableCircuitBreaker
@EnableDiscoveryClient
@ComponentScan("com.bootnetflix")
public class CouponServiceApp {
..
}

application yaml:

server:
  port: 0

eureka:
  instance:
    leaseRenewalIntervalInSeconds: 10
    metadataMap:
      instanceId: ${vcap.application.instance_id:${spring.application.name}:${spring.application.instance_id:${random.value}}}
  client:
    registryFetchIntervalSeconds: 5

Eureka 应用服务:
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication  {



Hystrix dashboard service:

    @SpringBootApplication
    @EnableHystrixDashboard
    @Controller
    public class HystrixDashboardApplication  {

应用程序.yaml:
info:
  component: Hystrix Dashboard

endpoints:
  restart:
    enabled: true
  shutdown:
    enabled: true

server:
  port: 7979

logging:
  level:
    ROOT: INFO
    org.springframework.web: DEBUG

eureka:
  client:
    region: default


    preferSameZone: false

    us-east-1:
      availabilityZones: default

  instance:
    virtualHostName: ${spring.application.name}

bootstrap.yaml
spring:
  application:
    name: hystrixdashboard

最后是涡轮服务:
  EnableAutoConfiguration
    @EnableTurbine
    @EnableEurekaClient
    @EnableHystrixDashboard
    public class TurbineApplication {

应用程序.yaml:
info:
  component: Turbine

PREFIX:

endpoints:
  restart:
    enabled: true
  shutdown:
    enabled: true

server:
  port: 8989

management:
  port: 8990



eureka:
  instance:
    leaseRenewalIntervalInSeconds: 10
  client:
      serviceUrl:
        defaultZone: http://localhost:8761/eureka/



#turbine:
 # aggregator:
  #  clusterConfig: FLIGHT-INTEGRATION-SERVICE,COUPON-SERVICE
  #appConfig: flight-integration-service,coupon-service


#turbine:
#  clusterNameExpression: 'default'
 # appConfig: flight-integration-service,coupon-service

turbine:
  appConfig: coupon-service,flight-integration-service
  clusterNameExpression: new String('default')




#As you can see I tried diff configurations.

我究竟做错了什么?为什么我实际上不能聚合这两个服务 hystrix 指标(飞行集成服务,优惠券服务)
谢谢你。

最佳答案

由@spencergibb 建议解决。我向每个客户端添加了 spring-boot-starter-amqp 的依赖项并创建了 rabbitMQ 代理。 Turbine 正在通过 amqp 聚合所有消息,我能够看到在我的 hystrix 仪表板服务器上聚合的所有 Hystrix 命令

关于spring-boot - 如何在 Turbine 中添加额外的 Hystrix 指标聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30581158/

相关文章:

microservices - 如何在 Netflix Conductor 中向 Task 注册微服务(或其方法)?

java - 将 Amazon IonStruct 转换为 JSONPObject

java - 在 Spring Boot 应用程序上保留 JPA(加上 Jackson)中的 "computed"字段

java - 是否可以在没有用户操作的情况下上传文件,或者只是 html、Angular 中的对话框?

java - 根据 ID 和列表中的另一个 ID 查找记录

Spring Cloud Task - 指定数据库配置

spring-cloud - 实例关闭时的 Spring Cloud Gateway 500

gradle - Netflix Conductor-java.exe错误= 206文件名或扩展名太长

spring-security - 如何允许匿名访问端点

gradle - 如何更改项目版本的默认策略?