SpringCloud(七)之SpringCloud的鏈路追蹤組件Sleuth實戰,以及 zipkin 的部署和使用


一、前言

Spring Cloud Sleuth 主要功能就是在分布式系統中提供追蹤解決方案 ,並且兼容了zipkin,提供了REST API接口來輔助我們查詢跟蹤數據以實現對分布式系統的監控程序 。

Sleuth  是個組件,沒有提供我們可視化的界面,和一些相信的api信息,而zipkin 是個系統,他有可視化的界面,和對應接口調用詳細的信息情況。

二、為什么要使用鏈路追蹤

微服務架構上通過業務來划分服務的,通過REST調用,對外暴露的一個接口,可能需要很多個服務協同才能完成這個接口功能,如果鏈路上任何一個服務出現問題或者網絡超時,都會形成導致接口調用失敗。隨着業務的不斷擴張,服務之間互相調用會越來越復雜。

,對調用鏈的分析會越來越復雜。如果那里出現了錯誤,我們是很排查的。所以我們引入了鏈路追蹤,使用可視化的界面我們可以很容易的找到那一塊耗時多,等等。

Sleuth 的使用:

  1.在項目中加入依賴:

 

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>

2.然后在你想打印日志的地方輸入

 

 控制台會出現下面這個 (現在看起來是不是感覺使用起來也不怎方便,下面我會講zipkin,他提供了可視化界面,看的就清楚多了。)


[order-service,96f95a0dd81fe3ab,852ef4cfcdecabf3,false] 

1、第一個值,spring.application.name的值

2、第二個值,96f95a0dd81fe3ab ,sleuth生成的一個ID,叫Trace ID,用來標識一條請求鏈路,一條請求鏈路中包含一個Trace ID,多個Span ID

3、第三個值,852ef4cfcdecabf3、spanid 基本的工作單元,獲取元數據,如發送一個http

4、第四個值:false,是否要將該信息輸出到zipkin服務中來收集和展示。

3可視化鏈路追蹤系統Zipkin

大規模分布式系統的APM工具(Application Performance Management),基於Google Dapper的基礎實現,和sleuth結合可以提供可視化web界面分析調用鏈路耗時情況

 3.1 可視化鏈路追蹤系統Zipkin部署。(我使用的是docker 我后面會講下docker的部署,很簡單的)

  //阿里提供的部署Zipkin的方法,里面講了好幾種 包括java 部署 和docker 部署

docker部署:

docker run -d -p 9411:9411 openzipkin/zipkin
這樣就搞定了 ,然后ip+端口就能訪問:

3.2  代碼中的使用。

那個項目想要鏈路追蹤就都加入下面的兩個配置

  3.1.1 加入依賴

 <!--里面包含 spring-cloud-starter-sleuth、spring-cloud-sleuth-zipkin  ->

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

3.1.1 配置文件添加

#服務的名稱
spring:
application:
name: order-service
#zipkin服務所在地址
zipkin:
base-url: http://47.XX.XX.XX:9411/
#配置采樣百分比,開發環境可以設置為1,表示全部,生產就用默認(0.1)
sleuth:
sampler:
probability: 1

3.2  測試

調用 api 接口  

查看Zipkin 可視化系統

 

 

  

這樣詳細信息就全部追蹤到了。

3.4  大致說下  Sleuth 和Zipkin  是怎么調用的.

sleuth收集跟蹤信息通過http請求發送給zipkin server,zipkinserver進行跟蹤信息的存儲以及提供Rest API即可,Zipkin UI調用其API接口進行數據展示

默認存儲是內存,可也用mysql、或者elasticsearch等存儲。 所以說,Sleuth 才是根本,而Zipkin  這是進行了對數據的分析和展示。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM