Hystrix?Turbine聚合監(jiān)控的實(shí)現(xiàn)詳解
之前,我們針對的是一個微服務(wù)實(shí)例的Hystrix數(shù)據(jù)查詢分析,在微服務(wù)架構(gòu)下,一個微服務(wù)的實(shí)例往往是多個(集群化)。
比如自動投遞微服務(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儀表盤每次輸入一個監(jiān)控?cái)?shù)據(jù)流url,進(jìn)去查看
手工操作能否被自動功能替代?Hystrix Turbine聚合(聚合各個實(shí)例上的hystrix監(jiān)控?cái)?shù)據(jù))監(jiān)控
Turbine(渦輪)
思考:微服務(wù)架構(gòu)下,一個微服務(wù)往往部署多個實(shí)例,如果每次只能查看單個實(shí)例的監(jiān)控,就需要經(jī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客戶端的兩個原因 1、?師說過,微服務(wù)架構(gòu)下的服務(wù)都盡量注冊到服務(wù)中?去,便于統(tǒng)?管理 2、后續(xù)在當(dāng)前turbine項(xiàng)?中我們需要配置turbine聚合的服務(wù),?如,我們希望聚合lagou-service-autodeliver這個服務(wù)的各個實(shí)例的hystrix數(shù)據(jù)流, 那隨后我們就需要在application.yml?件中配置這個服務(wù)名,那么turbine獲取服務(wù)下具體實(shí)例的數(shù)據(jù)流的時候需要ip和端?等實(shí)例信息, 那么怎么根據(jù)服務(wù)名稱獲取到這些信息呢? 當(dāng)然可以從eureka服務(wù)注冊中?獲取 --> <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)控的多個微服務(wù)配置起來,在工程application.yml中開啟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 都填寫了進(jìn)來,也可以只寫?臺,因?yàn)楦鱾€ eureka server 可以同步注冊表
instance:
#使?ip注冊,否則會使?主機(jī)名注冊了(此處考慮到對?版本的兼容,新版本經(jīng)過實(shí)驗(yàn)都是ip)
prefer-ip-address: true
#?定義實(shí)例顯示格式,加上版本號,便于多版本管理,注意是ip-address,早期版本是ipAddress
instance-id: ${spring.cloud.client.ipaddress}:${spring.application.name}:${server.port}:@project.version@
#turbine配置
turbine:
# appCofing配置需要聚合的服務(wù)名稱,?如這?聚合?動投遞微服務(wù)的hystrix監(jiān)控?cái)?shù)據(jù)
# 如果要聚合多個微服務(wù)的監(jiān)控?cái)?shù)據(jù),那么可以使?英?逗號拼接,?如 a,b,c
appConfig: lagou-service-autodeliver
clusterNameExpression: "'default'" # 集群默認(rèn)名稱
(3)在當(dāng)前項(xiàng)目啟動類上添加注解@EnableTurbine,開啟儀表盤以及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 // 開啟turbine聚合功能 public class HystrixTurbineApplication9001 { public static void main(String[] args) { SpringApplication.run(HystrixTurbineApplication9001.class, args); } }
(4)瀏覽器訪問Turbine項(xiàng)目,http://localhost:9001/turbine.stream,就可以看到監(jiān)控?cái)?shù)據(jù)了
我們通過dashboard的頁面查看數(shù)據(jù)更直觀,把剛才的地址輸入dashboard地址欄
監(jiān)控頁面
到此這篇關(guān)于Hystrix Turbine聚合監(jiān)控的實(shí)現(xiàn)詳解的文章就介紹到這了,更多相關(guān)Hystrix Turbine聚合監(jiān)控內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
bootstrap.yml如何讀取nacos配置中心的配置文件
這篇文章主要介紹了bootstrap.yml讀取nacos配置中心的配置文件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12IDEA插件(BindED)之查看class文件的十六進(jìn)制
這篇文章主要介紹了IDEA插件(BindED)之查看class文件的十六進(jìn)制,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12SpringMVC中參數(shù)綁定問題實(shí)例詳解
springmvc是用來處理頁面的一些請求,然后將數(shù)據(jù)再通過視圖返回給用戶的,下面這篇文章主要給大家介紹了關(guān)于SpringMVC中參數(shù)綁定問題的相關(guān)資料,需要的朋友可以參考下2022-04-04在springboot項(xiàng)目中同時接收文件和多個參數(shù)的方法總結(jié)
在開發(fā)接口中,遇到了需要同時接收文件和多個參數(shù)的情況,可以有多種方式實(shí)現(xiàn)文件和參數(shù)的同時接收,文中給大家介紹了兩種實(shí)現(xiàn)方法,感興趣的同學(xué)跟著小編一起來看看吧2023-08-08win10 下 idea2020安裝 JetBrains-agent.jar 包后閃退的問題及解決辦法
這篇文章主要介紹了win10 下 idea2020安裝 JetBrains-agent.jar 包后閃退的解決辦法,本文給大家?guī)碓蚍治黾敖鉀Q方法,需要的朋友可以參考下2020-08-08SpringCloud可視化鏈路追蹤系統(tǒng)Zipkin部署過程
這篇文章主要介紹了SpringCloud可視化鏈路追蹤系統(tǒng)Zipkin部署過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03