涡轮实例 URLSuffix 不起作用
Posted
技术标签:
【中文标题】涡轮实例 URLSuffix 不起作用【英文标题】:Turbine instanceURLSuffix not working 【发布时间】:2017-01-23 11:42:32 【问题描述】:我正在从涡轮机收集 hystrix 流,但服务在端口 5555 上启用了管理端口。
当我在涡轮机中设置属性时:
eureka.client.serviceUrl.defaultZone=http://discovery:8761/eureka/
server.port=8989
InstanceDiscovery.impl=com.netflix.turbine.discovery.EurekaInstanceDiscovery.class
turbine.instanceUrlSuffix=:5555/hystrix.stream
turbine.InstanceMonitor.eventStream.skipLineLogic.enabled=false
turbine.appConfig=service1,service2,gateway
turbine.clusterNameExpression=new String('default')
它尝试连接到:
http://gateway-ip:10000/:5555/hystrix.stream
而不是替换端口。我有什么遗漏吗?
更新
我怀疑 instanceUrlSuffix 和 EurekaInstanceDiscovery 之间不兼容。
我需要为该服务输入任何信息metadataMap
以使其正常工作吗?
版本是:
涡轮服务:
spring-cloud-starter-parent: Brixton.SR5 spring-cloud-starter-turbine:1.1.6尤里卡服务:
spring-cloud-starter-parent: Brixton.SR5
【问题讨论】:
【参考方案1】:为了让它工作,我必须将这两个属性添加到配置中:
turbine:
instanceInsertPort: false
instanceUrlSuffix: :5555/hystrix.stream
turbine.instanceInsertPort
的诀窍在于,由schema://host+urlSuffix
组成最终 URL
【讨论】:
那很好..我希望我的回答至少能给你一些方向。【参考方案2】:以下对我有用。 注意:默认配置文件对我也不起作用,但单个流以这种方式工作。
我的 service1 使用 -Dserver.port=5151 和 -Dmanagement.port=5152 注册到 Eureka,因此我的 hystrix 流与我的服务端点位于不同的端口上。
turbine.instanceInsertPort=false
turbine.appConfig=service1
turbine.aggregator.clusterConfig=SERVICE1
turbine.instanceUrlSuffix.USER=:5152/hystrix.stream
InstanceDiscovery.impl=com.netflix.turbine.discovery.EurekaInstanceDiscovery.class
【讨论】:
【参考方案3】:Turbine 无法读取 application.property 或 environment 中的 'turbine.instanceUrlSuffix',它需要其他 lib 才能读取属性。
你是依赖库spring-cloud-starter-netflix-hystrix-dashboard
还是spring-cloud-starter-netflix-archaius
?如果没有,请尝试将其添加到您的 pom.xml。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
<version>2.2.7.RELEASE</version>
</dependency>
【讨论】:
以上是关于涡轮实例 URLSuffix 不起作用的主要内容,如果未能解决你的问题,请参考以下文章