sleuth介绍
?spring Cloud Sleuth為 spring Cloud提供了分布式跟蹤的解決方案,它大量借用了Google Dapper、 Twitter Zipkin和 Apache HTrace的設計,先來了解一下 Sleuth的術語, Sleuth借用了 Dapper的術語。
span(跨度):基本工作單元。 span用一個64位的id唯一標識。除ID外,span還包含其他數據,例如描述、時間戳事件、鍵值對的注解(標簽), spanID、span父 ID等。 span被啟動和停止時,記錄了時間信息。初始化 span被稱為"rootspan",該 span的 id和 trace的 ID相等。
trace(跟蹤):一組共享"rootspan"的 span組成的樹狀結構稱為 traceo trac也用一個64位的 ID唯一標識, trace中的所有 span都共享該 trace的 ID
annotation(標注): annotation用來記錄事件的存在,其中,核心annotation用來定義請求的開始和結束。
CS( Client sent客戶端發送):客戶端發起一個請求,該 annotation描述了span的開 始。
?SR( server Received服務器端接收):服務器端獲得請求并準備處理它。如果用 SR減去 CS時間戳,就能得到網絡延遲。c)
?SS( server sent服務器端發送):該 annotation表明完成請求處理(當響應發回客戶端時)。如果用 SS減去 SR時間戳,就能得到服務器端處理請求所需的時間。
CR( Client Received客戶端接收): span結束的標識。客戶端成功接收到服務器端的響應。如果 CR減去 CS時間戳,就能得到從客戶端發送請求到服務器響應的所需的時間
Spring Cloud Sleuth可以追蹤10種類型的組件:async、Hystrix,messaging,websocket,rxjava,scheduling,web(Spring MVC Controller,Servlet),webclient(Spring RestTemplate)、Feign、Zuul
下面我們通過一張圖來看一下一個簡單的微服務調用鏈:
這張圖是spring cloud 官方給出的示例圖
圖片詳細講了我們上文所說的概念在調用鏈中 處于什么狀態以及改變
?
總結
- 上一篇: 客户端从config上获取配置
- 下一篇: Zipkin简介