sleuth使用說明(入門)


出發點:

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

sleuth中的一些術語

  • Span:基本工作單元,例如,在一個新建的span中發送一個RPC等同於發送一個回應請求給RPC,span通過一個64位ID唯一標識,trace以另一個64位ID表示,span還有其他數據信息,比如摘要、時間戳事件、關鍵值注釋(tags)、span的ID、以及進度ID(通常是IP地址)
    span在不斷的啟動和停止,同時記錄了時間信息,當你創建了一個span,你必須在未來的某個時刻停止它。
  • Trace:一系列spans組成的一個樹狀結構,例如,如果你正在跑一個分布式大數據工程,你可能需要創建一個trace。
  • Annotation:用來及時記錄一個事件的存在,一些核心annotations用來定義一個請求的開始和結束
  • cs - Client Sent -客戶端發起一個請求,這個annotion描述了這個span的開始
  • sr - Server Received -服務端獲得請求並准備開始處理它,如果將其sr減去cs時間戳便可得到網絡延遲
  • ss - Server Sent -注解表明請求處理的完成(當請求返回客戶端),如果ss減去sr時間戳便可得到服務端需要的處理請求時間
  • cr - Client Received -表明span的結束,客戶端成功接收到服務端的回復,如果cr減去cs時間戳便可得到客戶端從服務端獲取回復的所有所需時間

 配置sleuth

  首先創建一個ZipkinServer工程,負責收集展示調用信息,對於gradle項目,引入依賴

dependencies {
  compile('org.springframework.boot:spring-boot-starter-web')
  runtime('io.zipkin.java:zipkin-autoconfigure-ui')
  compile('io.zipkin.java:zipkin-server')
  testCompile('org.springframework.boot:spring-boot-starter-test')
}

  在其程序入口類, 加上注解@EnableZipkinServer,開啟ZipkinServer的功能,並在配置文件中指定服務端口

  對於需要sleuth進行跟蹤的服務,同樣需要引入依賴

    compile('org.springframework.cloud:spring-cloud-starter-zipkin')

  然后在服務的配置文件中加入配置

spring:  

zipkin:
    base-url: http://zipkin-server:9010

在rancher啟動服務時將服務鏈接指向zipkinserver

 使用sleuth

  訪問zipkinserver工程暴露出來的端口,即可使用圖形界面查看鏈路追蹤的情況

  


免責聲明!

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



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