SpringCloud Turbine Stream
在某些环境中(例如在PaaS设置中),从所有分布式Hystrix命令中提取指标的经典Turbine模型不起作用。在这种情况下,您可能想让Hystrix命令将指标推送到Turbine。Spring Cloud通过消息传递实现了这一点。要在客户端上执行此操作,请向spring-cloud-netflix-hystrix-stream
和您选择的spring-cloud-starter-stream-*
添加一个依赖项。有关代理以及如何配置客户端凭据的详细信息,请参见Spring Cloud Stream文档。对于本地代理,它应该开箱即用。
在服务器端,创建一个Spring Boot应用程序,并用@EnableTurbineStream
对其进行注释。Turbine Stream服务器需要使用Spring Webflux,因此,spring-boot-starter-webflux
必须包含在您的项目中。将spring-cloud-starter-netflix-turbine-stream
添加到您的应用程序时,默认包含spring-boot-starter-webflux
。
然后,您可以将Hystrix仪表板指向Turbine Stream服务器,而不是单独的Hystrix流。如果Turbine Stream在myhost的端口8989上运行,则将http://myhost:8989
放在Hystrix仪表板的流输入字段中。电路以其各自的serviceId
为前缀,后跟一个点(.
),然后是电路名称。
Spring Cloud提供了spring-cloud-starter-netflix-turbine-stream
,其中包含使Turbine Stream服务器运行所需的所有依赖项。然后,您可以添加您选择的流绑定程序,例如spring-cloud-starter-stream-rabbit
。
Turbine Stream服务器还支持cluster
参数。与Turbine服务器不同,Turbine Stream使用eureka serviceIds作为群集名称,并且这些名称不可配置。
如果Turbine Stream服务器在my.turbine.server
的端口8989上运行,并且您的环境中有两个eureka serviceId customers
和products
,则以下URL将在Turbine Stream服务器上可用。default
和空群集名称将提供Turbine Stream服务器接收的所有度量。
https://my.turbine.sever:8989/turbine.stream?cluster=customers https://my.turbine.sever:8989/turbine.stream?cluster=products https://my.turbine.sever:8989/turbine.stream?cluster=default https://my.turbine.sever:8989/turbine.stream
因此,您可以将eureka serviceIds用作Turbine仪表板(或任何兼容的仪表板)的群集名称。您无需为Turbine Stream服务器配置任何属性,例如turbine.appConfig
,turbine.clusterNameExpression
和turbine.aggregator.clusterConfig
。
Turbine Stream服务器使用Spring Cloud Stream从配置的输入通道中收集所有度量。这意味着它不会从每个实例中主动收集Hystrix指标。它仅可以提供每个实例已经收集到输入通道中的度量。
更多建议: