目錄
- 前言
- 1. Sleuth 基礎知識
- 1.1 Sleuth 原理
- 2. 在服務中使用 Sleuth 追蹤
- 2.1 引入 pom.xml 依賴檔案
- 2.2 查看日志資訊
- 最后
前言
參考資料:
《Spring Microservices in Action》
《Spring Cloud Alibaba 微服務原理與實戰》
《B站 尚硅谷 SpringCloud 框架開發教程 周陽》
Spring Cloud Sleuth 是一個 Spring Cloud 專案,它將關聯 ID 裝備到 HTTP 呼叫上,并將生成的跟蹤資料提供給 OpenZipkin 的鉤子,Spring Cloud Sleuth 通過添加過濾器并與其他 Spring 組件進行互動,將生成的關聯 ID 傳遞到所有系統呼叫;
1. Sleuth 基礎知識
1.1 Sleuth 原理
- 使用 Sleuth 來追蹤服務呼叫鏈很簡單,只需要添加一個 pom.xml 依賴即可;
- 添加依賴后會對輸出日志追加一條資訊;
- 利用資訊里的追蹤 ID即可獲知本次呼叫使用到了哪些服務;
2. 在服務中使用 Sleuth 追蹤
2.1 引入 pom.xml 依賴檔案
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
- 只需要引入該依賴檔案即可完成以下作業:
- 檢查每次呼叫是否存在 Spring Cloud Sleuth 跟蹤資訊,存在則進行日志記錄和處理;
- 將 Spring Cloud Sleuth 跟蹤資訊添加到 Spring MDC(Spring Mapped Diagnostic Context,Spring 的映射診斷背景關系);
- 將 Spring Cloud跟蹤資訊注入服務發出的每個出站 HTTP 呼叫以及 Spring 訊息傳遞通道的訊息中;
2.2 查看日志資訊
- 啟動服務,呼叫介面,則會在控制臺里看到類似如下資訊:

-
Sleuth 會在每個日志條目追加以下資訊:
- 服務的應用程式名稱:默認為
spring.application.name定義的名稱; - 跟蹤 ID(trace ID):跟蹤 ID是關聯 ID 的等價術語,表示整個事務的唯一編號;
- 跨度 ID(span ID):表示整個事務中某一部分的唯一 ID(當與 Zipkin 集成來可視化事務時,跨度 ID 尤為重要 );
- 是否將跟蹤資料發送到 Zipkin:對大量的日志資料起過濾篩選作用;
- 服務的應用程式名稱:默認為
-
舉個例子:客戶端請求上游服務,而上游服務需要請求下游服務時,這兩個服務有相同的跟蹤 ID,不同的跨度 ID;
最后

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/423383.html
標籤:其他
