SpringCloud分布式鏈路追蹤組件Sleuth配置詳解
一.概述
在微服務(wù)框架中,一個由客戶端發(fā)起的請求在后端系統(tǒng)中會經(jīng)過多個不同的的服務(wù)節(jié)點調(diào)用來協(xié)同產(chǎn)生最后的請求結(jié)果,每一個前段請求都會形成一條復(fù)雜的分布式服務(wù)調(diào)用鏈路,鏈路中的任何一環(huán)出現(xiàn)高延時或錯誤都會引起整個請求最后的失敗。
spring-cloud-sleuth 是什么?
github地址:https://github.com/spring-cloud/spring-cloud-sleuth
Spring Cloud Sleuth提供了一套完整的服務(wù)跟蹤的解決方案,在分布式系統(tǒng)中提供追蹤解決方案并且兼容支持了zipkin
二.zipkin搭建
Zipkin是 Twitter 的一個開源項目,基于 Google Dapper實現(xiàn)??梢允褂盟鼇硎占鱾€服務(wù)器上請求鏈路的跟蹤數(shù)據(jù),并通過它提供的 REST API 接口來輔助我們查詢跟蹤數(shù)據(jù)以實現(xiàn)對分布式系統(tǒng)的監(jiān)控程序,從而及時地發(fā)現(xiàn)系統(tǒng)中出現(xiàn)的延遲升高問題并找出系統(tǒng)性能瓶頸的根源。除了面向開發(fā)的API接口之外,它也提供了方便的 UI 組件幫助我們直觀的搜索跟蹤信息和分析請求鏈路明細,比如:可以查詢某段時間內(nèi)各用戶請求的處理時間等。
SpringCloud從F版起已不需要自己構(gòu)建Zipkin Server了,只需調(diào)用jar包即可
zipkin-server-2.12.9-exec.jar
運行:
java -jar zipkin-server-2.12.9-exec.jar
訪問地址:http://localhost:9411/zipkin/
術(shù)語:
完整的調(diào)用鏈路
表示一請求鏈路,一條鏈路通過Trace Id唯一標識,Span標識發(fā)起的請求信息,各span通過parent id 關(guān)聯(lián)起來
—條鏈路通過Trace ld唯一標識,Span標識發(fā)起的請求信息,各span通過parent id關(guān)聯(lián)起來。
名詞解釋:
- Trace:類似于樹結(jié)構(gòu)的Span集合,表示一條調(diào)用鏈路,存在唯一標識
- span:表示調(diào)用鏈路來源,通俗的理解span就是一次請求信息
三.Sleuth鏈路監(jiān)控實現(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消費者修改
添加依賴:
<!--包含了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. 測試
啟動注冊中心7001
啟動生產(chǎn)者8001
啟動消費者80
多訪問幾次 http://localhost/consumer/payment/zipkin
查看 zipkin控制臺:http://localhost:9411
查看依賴關(guān)系:
到此這篇關(guān)于SpringCloud分布式鏈路追蹤組件Sleuth配置詳解的文章就介紹到這了,更多相關(guān)SpringCloud組件Sleuth內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot+jersey+tomcat實現(xiàn)跨域方式上傳文件到服務(wù)器的方式
這篇文章主要介紹了springboot+jersey+tomcat實現(xiàn)跨域方式上傳文件到服務(wù)器,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03Spring Boot結(jié)合ECharts案例演示示例
本文主要主要介紹了Spring Boot結(jié)合ECharts案例演示示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06Spring中的NamespaceHandler與BeanDefinitionParser詳解
這篇文章主要介紹了Spring中的NamespaceHandler與BeanDefinitionParser詳解,由Spring啟動過程之obtainFreshBeanFactory() ,可以看到NamespaceHandler、BeanDefinitionParser為解析配置文件中的Element起重要作用,那么它本身是如何被加載的呢,需要的朋友可以參考下2023-12-12Spring Boot使用GridFS實現(xiàn)文件的上傳和下載方式
這篇文章主要介紹了Spring Boot使用GridFS實現(xiàn)文件的上傳和下載方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10解決Request.getParameter獲取不到特殊字符bug問題
這篇文章主要介紹了解決Request.getParameter獲取不到特殊字符bug問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07Feign利用自定義注解實現(xiàn)路徑轉(zhuǎn)義詳解
這篇文章主要講解一下如何通過注解實現(xiàn)對路由中的路徑進行自定義編碼,文中的示例代碼講解詳細,對我們學(xué)習(xí)或工作有一定的幫助,需要的可以參考一下2022-06-06