SpringCloud微服務_4 Sleuth+Zipkin請求服務鏈路動態追蹤

         SpringCloud微服務_4 Sleuth+Zipkin請求服務鏈路動態追蹤

                                                                                                                               作者:田超凡

版權所有,轉載請註明原作者,仿冒侵權必究法律責任

 

SpringCloud2.0 提供基於Sleuth+Zipkin實現請求服務鏈路動態追蹤,可以對每次請求的完整生命週期進行直觀的分析和動態追蹤,主要原理是把每次請求的過程橫切爲多個時間片,包括Client Sent(CS),Server Received(SR),Server Sent(SS),Client Received(CR)四個時間片區,採用時序圖的展示形式通過Zipkin動態渲染,Sleuth把服務和服務之間的調用順序以及處理請求各階段時間片信息收集起來並上報給Zipkin進行動態渲染。採用鏈式追蹤方式,把接收到請求的第一個服務作爲Root Span,服務和服務之間調用作爲Root Span的子Span和孫子Span,處理請求的每個服務都是一個Span(Sleuth服務鏈路追蹤的基本計量單元),當服務器處理請求完畢並返回響應以後,所有處理過請求的服務Span將會構建成一個Annotation樹,每一個節點都是一個Span,所以在基於Sleuth實現請求服務鏈路追蹤過程中,每一個處理過當前請求的服務都是Span,每一個請求從服務器接收到返回響應過程都是Annotation,Sleuth對於每一個請求的服務器處理過程生成的Annotation樹都會生成不同Annotation ID進行唯一標識並上報給Zipkin進行數據渲染展示。總的來說,基於Sleuth+Zipkin實現請求服務鏈路動態追蹤對於大規模的微服務集羣構建的項目而言(尤其是已經上線的外網項目而言),通過請求服務鏈路動態追蹤可以在響應超時,網絡延遲,服務故障等問題診斷方面起到重要作用,方便開發人員快速定位問題並及時給出解決方案,同時對於響應過慢和性能優化問題也可以起到一個參考作用,通過不同時間片之間的計算可以獲取每個鏈路執行所消耗的時間,通過Zipkin時序圖也可以直觀查看服務調用順序和服務與服務之間的依賴關係。Sleuth+Zipkin作爲新生代SpringCloud全家桶中的成員,通過強大的服務鏈路動態追蹤機制必將爲微服務治理和容災起到至關重要的拍錯和故障診斷作用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章