Hystrix?Turbine聚合監(jiān)控的實(shí)現(xiàn)詳解
之前,我們針對(duì)的是一個(gè)微服務(wù)實(shí)例的Hystrix數(shù)據(jù)查詢分析,在微服務(wù)架構(gòu)下,一個(gè)微服務(wù)的實(shí)例往往是多個(gè)(集群化)。
比如自動(dòng)投遞微服務(wù)
- 實(shí)例1(hystrix) ip1:port1/actuator/hystrix.stream
- 實(shí)例2(hystrix) ip2:port2/actuator/hystrix.stream
- 實(shí)例3(hystrix) ip3:port3/actuator/hystrix.stream
按照已有的方法,我們就可以結(jié)合dashboard儀表盤(pán)每次輸入一個(gè)監(jiān)控?cái)?shù)據(jù)流url,進(jìn)去查看
手工操作能否被自動(dòng)功能替代?Hystrix Turbine聚合(聚合各個(gè)實(shí)例上的hystrix監(jiān)控?cái)?shù)據(jù))監(jiān)控
Turbine(渦輪)
思考:微服務(wù)架構(gòu)下,一個(gè)微服務(wù)往往部署多個(gè)實(shí)例,如果每次只能查看單個(gè)實(shí)例的監(jiān)控,就需要經(jīng)常切換很不方便,在這樣的場(chǎng)景下,我們可以使用 HystrixTurbine 進(jìn)行聚合監(jiān)控,它可以把相關(guān)微服務(wù)的監(jiān)控?cái)?shù)據(jù)聚合在一起,便于查看。
Turbine服務(wù)搭建
(1)新建項(xiàng)目lagou-cloud-hystrix-turbine-9001,引入依賴坐標(biāo)
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>lagou-parent</artifactId> <groupId>com.lagou</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>lagou-cloud-hystrix-turbine-9001</artifactId> <dependencies> <!--hystrix turbine聚合監(jiān)控--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-turbine</artifactId> </dependency> <!-- 引?eureka客戶端的兩個(gè)原因 1、?師說(shuō)過(guò),微服務(wù)架構(gòu)下的服務(wù)都盡量注冊(cè)到服務(wù)中?去,便于統(tǒng)?管理 2、后續(xù)在當(dāng)前turbine項(xiàng)?中我們需要配置turbine聚合的服務(wù),?如,我們希望聚合lagou-service-autodeliver這個(gè)服務(wù)的各個(gè)實(shí)例的hystrix數(shù)據(jù)流, 那隨后我們就需要在application.yml?件中配置這個(gè)服務(wù)名,那么turbine獲取服務(wù)下具體實(shí)例的數(shù)據(jù)流的時(shí)候需要ip和端?等實(shí)例信息, 那么怎么根據(jù)服務(wù)名稱獲取到這些信息呢? 當(dāng)然可以從eureka服務(wù)注冊(cè)中?獲取 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> </dependencies> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> </project>
2)將需要進(jìn)行Hystrix監(jiān)控的多個(gè)微服務(wù)配置起來(lái),在工程application.yml中開(kāi)啟Turbine及進(jìn)行相關(guān)配置
server:
port: 9001
Spring:
application:
name: lagou-cloud-hystrix-turbine
eureka:
client:
serviceUrl: # eureka server的路徑
defaultZone: http://LagouCloudEurekaServerB:8762/eureka,http://LagouCloudEurekaServerA:8761/eureka #把 eureka 集群中的所有 url 都填寫(xiě)了進(jìn)來(lái),也可以只寫(xiě)?臺(tái),因?yàn)楦鱾€(gè) eureka server 可以同步注冊(cè)表
instance:
#使?ip注冊(cè),否則會(huì)使?主機(jī)名注冊(cè)了(此處考慮到對(duì)?版本的兼容,新版本經(jīng)過(guò)實(shí)驗(yàn)都是ip)
prefer-ip-address: true
#?定義實(shí)例顯示格式,加上版本號(hào),便于多版本管理,注意是ip-address,早期版本是ipAddress
instance-id: ${spring.cloud.client.ipaddress}:${spring.application.name}:${server.port}:@project.version@
#turbine配置
turbine:
# appCofing配置需要聚合的服務(wù)名稱,?如這?聚合?動(dòng)投遞微服務(wù)的hystrix監(jiān)控?cái)?shù)據(jù)
# 如果要聚合多個(gè)微服務(wù)的監(jiān)控?cái)?shù)據(jù),那么可以使?英?逗號(hào)拼接,?如 a,b,c
appConfig: lagou-service-autodeliver
clusterNameExpression: "'default'" # 集群默認(rèn)名稱
(3)在當(dāng)前項(xiàng)目啟動(dòng)類上添加注解@EnableTurbine,開(kāi)啟儀表盤(pán)以及Turbine聚合
package com.lagou.edu; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.netflix.turbine.EnableTurbine; @SpringBootApplication @EnableDiscoveryClient @EnableTurbine // 開(kāi)啟turbine聚合功能 public class HystrixTurbineApplication9001 { public static void main(String[] args) { SpringApplication.run(HystrixTurbineApplication9001.class, args); } }
(4)瀏覽器訪問(wèn)Turbine項(xiàng)目,http://localhost:9001/turbine.stream,就可以看到監(jiān)控?cái)?shù)據(jù)了
我們通過(guò)dashboard的頁(yè)面查看數(shù)據(jù)更直觀,把剛才的地址輸入dashboard地址欄
監(jiān)控頁(yè)面
到此這篇關(guān)于Hystrix Turbine聚合監(jiān)控的實(shí)現(xiàn)詳解的文章就介紹到這了,更多相關(guān)Hystrix Turbine聚合監(jiān)控內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
bootstrap.yml如何讀取nacos配置中心的配置文件
這篇文章主要介紹了bootstrap.yml讀取nacos配置中心的配置文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12IDEA插件(BindED)之查看class文件的十六進(jìn)制
這篇文章主要介紹了IDEA插件(BindED)之查看class文件的十六進(jìn)制,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12SpringMVC中參數(shù)綁定問(wèn)題實(shí)例詳解
springmvc是用來(lái)處理頁(yè)面的一些請(qǐng)求,然后將數(shù)據(jù)再通過(guò)視圖返回給用戶的,下面這篇文章主要給大家介紹了關(guān)于SpringMVC中參數(shù)綁定問(wèn)題的相關(guān)資料,需要的朋友可以參考下2022-04-04在springboot項(xiàng)目中同時(shí)接收文件和多個(gè)參數(shù)的方法總結(jié)
在開(kāi)發(fā)接口中,遇到了需要同時(shí)接收文件和多個(gè)參數(shù)的情況,可以有多種方式實(shí)現(xiàn)文件和參數(shù)的同時(shí)接收,文中給大家介紹了兩種實(shí)現(xiàn)方法,感興趣的同學(xué)跟著小編一起來(lái)看看吧2023-08-08利用Jasypt如何對(duì)Spring Boot配置文件加密
這篇文章主要給大家介紹了關(guān)于利用Jasypt如何對(duì)Spring Boot配置文件加密的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07win10 下 idea2020安裝 JetBrains-agent.jar 包后閃退的問(wèn)題及解決辦法
這篇文章主要介紹了win10 下 idea2020安裝 JetBrains-agent.jar 包后閃退的解決辦法,本文給大家?guī)?lái)原因分析及解決方法,需要的朋友可以參考下2020-08-08SpringBoot 防止接口惡意多次請(qǐng)求的操作
這篇文章主要介紹了SpringBoot 防止接口惡意多次請(qǐng)求的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01SpringCloud可視化鏈路追蹤系統(tǒng)Zipkin部署過(guò)程
這篇文章主要介紹了SpringCloud可視化鏈路追蹤系統(tǒng)Zipkin部署過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03