SpringCloud分布式鏈路追蹤組件Sleuth配置詳解
一.概述
在微服務(wù)框架中,一個(gè)由客戶端發(fā)起的請(qǐng)求在后端系統(tǒng)中會(huì)經(jīng)過(guò)多個(gè)不同的的服務(wù)節(jié)點(diǎn)調(diào)用來(lái)協(xié)同產(chǎn)生最后的請(qǐng)求結(jié)果,每一個(gè)前段請(qǐng)求都會(huì)形成一條復(fù)雜的分布式服務(wù)調(diào)用鏈路,鏈路中的任何一環(huán)出現(xiàn)高延時(shí)或錯(cuò)誤都會(huì)引起整個(gè)請(qǐng)求最后的失敗。

spring-cloud-sleuth 是什么?
github地址:https://github.com/spring-cloud/spring-cloud-sleuth
Spring Cloud Sleuth提供了一套完整的服務(wù)跟蹤的解決方案,在分布式系統(tǒng)中提供追蹤解決方案并且兼容支持了zipkin
二.zipkin搭建
Zipkin是 Twitter 的一個(gè)開(kāi)源項(xiàng)目,基于 Google Dapper實(shí)現(xiàn)??梢允褂盟鼇?lái)收集各個(gè)服務(wù)器上請(qǐng)求鏈路的跟蹤數(shù)據(jù),并通過(guò)它提供的 REST API 接口來(lái)輔助我們查詢跟蹤數(shù)據(jù)以實(shí)現(xiàn)對(duì)分布式系統(tǒng)的監(jiān)控程序,從而及時(shí)地發(fā)現(xiàn)系統(tǒng)中出現(xiàn)的延遲升高問(wèn)題并找出系統(tǒng)性能瓶頸的根源。除了面向開(kāi)發(fā)的API接口之外,它也提供了方便的 UI 組件幫助我們直觀的搜索跟蹤信息和分析請(qǐng)求鏈路明細(xì),比如:可以查詢某段時(shí)間內(nèi)各用戶請(qǐng)求的處理時(shí)間等。
SpringCloud從F版起已不需要自己構(gòu)建Zipkin Server了,只需調(diào)用jar包即可
zipkin-server-2.12.9-exec.jar
運(yùn)行:
java -jar zipkin-server-2.12.9-exec.jar

訪問(wèn)地址:http://localhost:9411/zipkin/
術(shù)語(yǔ):
完整的調(diào)用鏈路
表示一請(qǐng)求鏈路,一條鏈路通過(guò)Trace Id唯一標(biāo)識(shí),Span標(biāo)識(shí)發(fā)起的請(qǐng)求信息,各span通過(guò)parent id 關(guān)聯(lián)起來(lái)

—條鏈路通過(guò)Trace ld唯一標(biāo)識(shí),Span標(biāo)識(shí)發(fā)起的請(qǐng)求信息,各span通過(guò)parent id關(guān)聯(lián)起來(lái)。


名詞解釋:
- Trace:類(lèi)似于樹(shù)結(jié)構(gòu)的Span集合,表示一條調(diào)用鏈路,存在唯一標(biāo)識(shí)
- span:表示調(diào)用鏈路來(lái)源,通俗的理解span就是一次請(qǐng)求信息
三.Sleuth鏈路監(jiān)控實(shí)現(xiàn)
1. payment8001生產(chǎn)者修改
添加依賴:
<!-- 包含了 sleuth 和 zipkin -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>application.yml
spring:
application:
name: cloud-payment-service
zipkin:
base-url: http://localhost:9411
sleuth:
sampler:
# 采樣率在0 到 1 之間 1則表示全部采樣
probability: 1s
新增controller方法:
@GetMapping("/payment/zipkin")
public String paymentZipkin()
{
return "hi ,i'am paymentzipkin server fall back,welcome to atguigu,O(∩_∩)O哈哈~";
} 2. Consumer80消費(fèi)者修改
添加依賴:
<!--包含了sleuth+zipkin-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>application.yml
spring:
application:
name: cloud-order-server
zipkin:
base-url: http://localhost:9411
sleuth:
sampler:
probability: 1 # 表示全部采樣
Controller新增方法
// ====================> zipkin+sleuth
@GetMapping("/consumer/payment/zipkin")
public String paymentZipkin()
{
String result = restTemplate.getForObject("http://localhost:8001"+"/payment/zipkin/", String.class);
return result;
}
3. 測(cè)試
啟動(dòng)注冊(cè)中心7001
啟動(dòng)生產(chǎn)者8001
啟動(dòng)消費(fèi)者80
多訪問(wèn)幾次 http://localhost/consumer/payment/zipkin
查看 zipkin控制臺(tái):http://localhost:9411

查看依賴關(guān)系:



到此這篇關(guān)于SpringCloud分布式鏈路追蹤組件Sleuth配置詳解的文章就介紹到這了,更多相關(guān)SpringCloud組件Sleuth內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringCloud使用Feign實(shí)現(xiàn)遠(yuǎn)程調(diào)用流程詳細(xì)介紹
- SpringCloud使用Feign實(shí)現(xiàn)動(dòng)態(tài)路由操作
- springcloud使用feign調(diào)用服務(wù)時(shí)參數(shù)內(nèi)容過(guò)大問(wèn)題
- SpringCloud之@FeignClient()注解的使用方式
- SpringCloud?分布式微服務(wù)架構(gòu)操作步驟
- SpringCloud?分布式鎖的多種實(shí)現(xiàn)
- SpringCloudAlibaba分布式組件詳解
- SpringCloud分布式項(xiàng)目下feign的使用示例詳解
相關(guān)文章
java實(shí)現(xiàn)上傳圖片進(jìn)行切割的方法
這篇文章主要介紹了java實(shí)現(xiàn)上傳圖片進(jìn)行切割的方法,以完整實(shí)例形式分析了Java針對(duì)上傳圖片進(jìn)行切割的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-02-02
java開(kāi)發(fā)validate方法中校驗(yàn)工具類(lèi)詳解
這篇文章主要為大家介紹了java開(kāi)發(fā)validate方法中校驗(yàn)工具類(lèi)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
關(guān)于TreeMap自定義排序規(guī)則的兩種方式
這篇文章主要介紹了關(guān)于TreeMap自定義排序規(guī)則的兩種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
SpringBoot實(shí)現(xiàn)輕量級(jí)動(dòng)態(tài)定時(shí)任務(wù)管控及組件化的操作步驟
文章介紹了一種在SpringBoot中實(shí)現(xiàn)動(dòng)態(tài)定時(shí)任務(wù)的解決方案,基于COLA架構(gòu)理論,封裝到了組件層,該組件支持類(lèi)級(jí)別和方法級(jí)別的定時(shí)任務(wù)注冊(cè),并提供了易用性和擴(kuò)展性,組件使用Maven形式引入,并且可以通過(guò)YAML配置文件進(jìn)行設(shè)置,感興趣的朋友一起看看吧2024-11-11
Spring 中如何根據(jù)環(huán)境切換配置 @Profile
這篇文章主要介紹了Spring中如何根據(jù)環(huán)境切換配置@Profile的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
Java后臺(tái)通過(guò)Collections獲取list集合中最大數(shù),最小數(shù)代碼
這篇文章主要介紹了Java后臺(tái)通過(guò)Collections獲取list集合中最大數(shù),最小數(shù)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08
java抓取網(wǎng)頁(yè)或文件中的郵箱號(hào)碼
這篇文章主要為大家詳細(xì)介紹了java如何抓取網(wǎng)頁(yè)或文件中的郵箱號(hào)碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
【面試】Spring事務(wù)面試考點(diǎn)吐血整理(建議珍藏)
本文是小編給大家收藏整理的Spring事務(wù)面試考點(diǎn),非常不錯(cuò),值得收藏,感興趣的朋友參考下吧2019-04-04

