SpringCloud Turbine Stream

2023-11-22 13:50 更新

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

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

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

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

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

如果Turbine Stream服務(wù)器在my.turbine.server的端口8989上運(yùn)行,并且您的環(huán)境中有兩個(gè)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.appConfig,turbine.clusterNameExpressionturbine.aggregator.clusterConfig

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)