Sleuth
一 引言
隨著服務的越來越多,對調?鏈的分析會越來越復雜。它們之間的調?關系也許如下圖:
問題:
1:微服務之間的調?錯綜復雜,?戶發送的請求經歷那些服務,調?鏈不清楚,沒有? 個?動化?具來維護調?鏈。
2:?法快速定位調?鏈中哪個環節出了問題
二 Sleuth簡介
1 SpringCloud-Sleuth
-
SpringCloud-Sleuth 提供的分布式系統中鏈路追蹤解決?案
-
同類產品:
-
SkyWalking是本?開源的基于字節碼注?的調?鏈分析,以及應?監控分析?具。特點 是?持多 種插件,UI功能較強,接?端?代碼侵?。?前已加?Apache孵化器。
-
cat 由?眾點評開源,基于Java開發的實時應?監控平臺,包括實時應?監控,業務監控 。 集成?案是通過代碼埋點的?式來實現監控。
-
2 Sleuth術語
-
span:
代表了?組基本的?作單元。為了統計各處理單元的延遲,當請求到達各個服務組件的 時候,也通過?個唯?標識(SpanId)來標記它的開始、具體過程和結束。通過SpanId 的開始和結束時間戳,就能統計該span的調?時間,除此之外,我們還可以獲取如事件 的名稱。請求信息等元數據。
-
Trace:
由?組Trace Id相同的Span串聯形成?個樹狀結構。為了實現請求跟蹤,當請求到達分 布式系統的??端點時,只需要服務跟蹤框架為該請求創建?個唯?的標識(即 TraceId),同時在分布式系統內部流轉的時候,框架始終保持傳遞該唯?值,直到整個 請求的返回。那么我們就可以使?該唯?標識將所有的請求串聯起來,形成?條完整的請求鏈路。
-
Annotation:?它記錄?個完成請求的4個事件,內部使?的重要注釋:
-
cs(Client Send)客戶端發出請求,開始?個請求的?命
-
sr(Server Received)服務端接受到請求開始進?處理, sr-cs = ?絡延遲(服務調? 的時間)
-
ss(Server Send)服務端處理完畢準備發送到客戶端,ss - sr = 服務器上的請求處理時 間
-
cr(Client Reveived)客戶端接受到服務端的響應,請求結束。 cr -cs = 請求的總時間
-