Hystrix 和 Turbine 不适用于 Spring boot 2 和 Spring cloud Finchley.M8

Posted

技术标签:

【中文标题】Hystrix 和 Turbine 不适用于 Spring boot 2 和 Spring cloud Finchley.M8【英文标题】:Hystrix and Turbine does not work with Spring boot 2 and Spring cloud Finchley.M8 【发布时间】:2018-08-17 00:13:02 【问题描述】:

我用 Spring boot 2 和最新版本的 Spring cloud 尝试了涡轮 + hystrix 仪表板,似乎存在一些问题,涡轮无法从反应服务中获取流。我刚刚上传了简单的微服务到github

https://github.com/armdev/reactive-spring-cloud

这样的异常:

com.netflix.turbine.monitor.instance.InstanceMonitor$MisconfiguredHostException: ["timestamp":"2018-03-08T17:22:05.809+0000","status":404,"error":"Not Found","message":"No message available","path":"/hystrix.stream"]
    at com.netflix.turbine.monitor.instance.InstanceMonitor.init(InstanceMonitor.java:318) ~[turbine-core-1.0.0.jar:na]
    at com.netflix.turbine.monitor.instance.InstanceMonitor.access$100(InstanceMonitor.java:103) ~[turbine-core-1.0.0.jar:na]
    at com.netflix.turbine.monitor.instance.InstanceMonitor$2.call(InstanceMonitor.java:235) [turbine-core-1.0.0.jar:na]
    at com.netflix.turbine.monitor.instance.InstanceMonitor$2.call(InstanceMonitor.java:229) [turbine-core-1.0.0.jar:na]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_101]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_101]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_101]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_101]

或损坏的管道。

有人用 Spring webflux 尝试过完整的 Spring Cloud Stack 吗?有什么建议吗?

【问题讨论】:

【参考方案1】:

幸运的是配置解决了问题,Spring boot 和 Spring cloud 没有任何 bug。非常感谢乔什·朗! 在这里您可以找到带有配置的完整项目。 https://github.com/armdev/reactive-spring-cloud/blob/master/google/src/main/resources/application.properties

server.port=8082
spring.application.name=turbine
management.endpoint.health.enabled=true
management.endpoints.jmx.exposure.include=*
management.endpoints.web.exposure.include=*
management.endpoints.web.base-path=/actuator
management.endpoints.web.cors.allowed-origins=true
management.endpoint.health.show-details=always
eureka.client.serviceUrl.defaultZone=$EUREKA_URI:http://localhost:8761/eureka
eureka.instance.lease-expiration-duration-in-seconds=5
eureka.instance.lease-renewal-interval-in-seconds=5
turbine.aggregator.cluster-config=default
turbine.app-config=google
turbine.cluster-name-expression= new String("default")
turbine.combine-host-port=true
turbine.instanceUrlSuffix.default: actuator/hystrix.stream

【讨论】:

既然您已经能够解决问题,请接受您自己的答案并关闭此问题。【参考方案2】:

management.endpoints.web.exposure.include=* yaml怎么写

【讨论】:

在 yml 中添加这样的包括:'*'

以上是关于Hystrix 和 Turbine 不适用于 Spring boot 2 和 Spring cloud Finchley.M8的主要内容,如果未能解决你的问题,请参考以下文章

Hystrix集群及集群监控turbine

006hystrix.stream信息聚合Turbine

hystrix.stream、management.port 和 Spring Cloud Turbine

hystrix-turbine 监控的使用

Turbine AMQP 不接收 Hystrix 流

hystrix-turbine实现多服务监控