如何在 spring 启动时为每个 eureka 应用程序配备涡轮机集群?

how to have a turbine cluster for each eureka app in spring boot?

我正在尝试从我的尤里卡服务器获取 "autoconfiguration" 涡轮机集群。

在尤里卡服务器上注册我配置了3个应用程序:app1、app2、app3。 在eureka server上注册的还有zuul proxy和turbine monitor。

我可以通过zuul正确访问三个应用程序,我可以正确看到每个应用程序的所有hystrix.stream。

我已经配置了一个涡轮机集群 'default',我可以从仪表板看到所有三个应用程序的合并涡轮机流(和仪表板)没有问题。

我的涡轮机 application.properties 看起来像这样:

eureka.client.serviceUrl.defaultZone=http://localhost:33210/eureka/
turbine.app-config=app1,app2,app3
turbine.cluster-name-expression=new String("default")

我似乎无法做到的是区分涡轮流以避免在仪表板中的三个应用程序之间混搭所有 hystrix 命令。

结果我想要的是可以把

/turbine.stream?cluster=app1
/turbine.stream?cluster=app2
/turbine.stream?cluster=app3

where cluster 匹配每个app的eureka名称,得到三个不同的dashboard。我通过文档认为通过 cluster-name-expression 删除默认值将是 appName 而不是静态 'default',但它不会发生。

我错了什么?

属性 名字应该像

turbine.clusterNameExpression= new String("default")

为每个流设置不同的集群...假设您甚至在 eureka 中的每个服务上启用了不同的管理端口,即 51511 和 51521 用于服务端点,51512 和 51522 用于管理端点。

turbine.instanceInsertPort=false
turbine.appConfig=service1,service2
turbine.aggregator.clusterConfig=SERVICE1,SERVICE2
turbine.instanceUrlSuffix.SERVICE1=:51512/hystrix.stream
turbine.instanceUrlSuffix.SERVICE2=:51522/hystrix.stream

turbine.clusterNameExpression= new String("default")

这对我很有效。 我只换了 turbine.cluster-name-expression='dafault' 有了上面,它对我来说就像一个奇迹。