https://docs.spring.io/spring-cloud-sleuth/docs/2.2.5.RELEASE/reference/html/
一、Sleuth介紹
為什麼要使用微服務跟蹤?它解決了什麼問題?
1.微服務的現狀?
微服務的現狀
隨著業務的發展,單體架構變為微服務架構,並且系統規模也變得越來越大,各微服務間的呼叫關係也變得越來越複雜。
多服務協同工作
在微服務的應用中,一個由客戶端發起的請求在後端系統中會經過多個不同的微服務呼叫來協同產生最後的請求結果
複雜的呼叫鏈條容易出錯
在複雜的微服務架構系統中,幾乎每一個前端請求都會形成一個複雜的分散式服務呼叫鏈路,在每條鏈路中任何一個依賴服務出現延遲超時或者錯誤都有可能引起整個請求最後的失敗
例如:
在微服務系統中,一個來自使用者的請求,請求先達到前端A(如前端介面)然後通過遠端呼叫,到達系統中介軟體B,C(負載均衡,閘道器等),最後達到後端服務D,E,後端經過一系列的業務邏輯計算最後將資料返回給使用者,對於這樣一個請求,經歷了這麼多個服務,怎麼樣將它的請求過程的資料記錄下來呢?這就需要用到服務鏈路追蹤
2.微服務跟蹤解決了什麼問題?
微服務跟蹤(sleuth)其實是一個工具,它在整個分散式系統中能跟蹤一個使用者請求的過程(包括資料採集,資料傳輸,資料儲存,資料分析,資料視覺化),捕獲這些跟蹤資料,就能構建微服務的整個呼叫鏈的檢視,這是除錯和監控微服務的關鍵工具。
SpringCloudSleuth有4個特點
二、Sleuth案例
首先在所有要在鏈路跟蹤程式碼裡面引入依賴:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency>
然後在所有要在鏈路跟蹤配置中配置
#鏈路跟蹤設定
logging:
level:
root: debug
spring: zipkin: base-url: http://192.168.0.23:9411/
然後docker安裝zipkin
1、拉映象
docker pull openzipkin/zipkin
2、執行映象
docker run -d --restart always -p 9411:9411 --name zipkin openzipkin/zipkin
在瀏覽器輸入地址:http://192.168.0.23:9411/zipkin/
感覺這是最水軍的一篇幅了