sleuth使用說明(入門)

出發點:

  微服務架構上經過業務來劃分服務的,經過REST調用,對外暴露的一個接口,可能須要不少個服務協同才能完成這個接口功能,若是鏈路上任何一個服務出現問題或者網絡超時,都會造成致使接口調用失敗。隨着業務的不斷擴張,服務之間互相調用會愈來愈複雜,在項目中引入sleuth能夠方便程序進行調試。java

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項目,引入依賴web

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')
}spring

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

  對於須要sleuth進行跟蹤的服務,一樣須要引入依賴架構

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

  而後在服務的配置文件中加入配置spring-boot

spring:  微服務

zipkin:
    base-url: http://zipkin-server:9010大數據

在rancher啓動服務時將服務連接指向zipkinservergradle

 使用sleuth

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

相關文章
相關標籤/搜索