SpringCloud Turbine Stream

2023-11-22 13:50 更新

在某些環(huán)境中(例如在PaaS設(shè)置中),從所有分布式Hystrix命令中提取指標的經(jīng)典Turbine模型不起作用。在這種情況下,您可能想讓Hystrix命令將指標推送到Turbine。Spring Cloud通過消息傳遞實現(xiàn)了這一點。要在客戶端上執(zhí)行此操作,請向spring-cloud-netflix-hystrix-stream和您選擇的spring-cloud-starter-stream-*添加一個依賴項。有關(guān)代理以及如何配置客戶端憑據(jù)的詳細信息,請參見Spring Cloud Stream文檔。對于本地代理,它應(yīng)該開箱即用。

在服務(wù)器端,創(chuàng)建一個Spring Boot應(yīng)用程序,并用@EnableTurbineStream對其進行注釋。Turbine Stream服務(wù)器需要使用Spring Webflux,因此,spring-boot-starter-webflux必須包含在您的項目中。將spring-cloud-starter-netflix-turbine-stream添加到您的應(yīng)用程序時,默認包含spring-boot-starter-webflux。

然后,您可以將Hystrix儀表板指向Turbine Stream服務(wù)器,而不是單獨的Hystrix流。如果Turbine Stream在myhost的端口8989上運行,則將http://myhost:8989放在Hystrix儀表板的流輸入字段中。電路以其各自的serviceId為前綴,后跟一個點(.),然后是電路名稱。

Spring Cloud提供了spring-cloud-starter-netflix-turbine-stream,其中包含使Turbine Stream服務(wù)器運行所需的所有依賴項。然后,您可以添加您選擇的流綁定程序,例如spring-cloud-starter-stream-rabbit

Turbine Stream服務(wù)器還支持cluster參數(shù)。與Turbine服務(wù)器不同,Turbine Stream使用eureka serviceIds作為群集名稱,并且這些名稱不可配置。

如果Turbine Stream服務(wù)器在my.turbine.server的端口8989上運行,并且您的環(huán)境中有兩個eureka serviceId customersproducts,則以下URL將在Turbine Stream服務(wù)器上可用。default和空群集名稱將提供Turbine Stream服務(wù)器接收的所有度量。

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服務(wù)器配置任何屬性,例如turbine.appConfigturbine.clusterNameExpressionturbine.aggregator.clusterConfig。

Turbine Stream服務(wù)器使用Spring Cloud Stream從配置的輸入通道中收集所有度量。這意味著它不會從每個實例中主動收集Hystrix指標。它僅可以提供每個實例已經(jīng)收集到輸入通道中的度量。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號