zipkin

轉:https://blog.csdn.net/liaokailin/article/details/52077620java

zipkin爲分佈式鏈路調用監控系統,聚合各業務系統調用延遲數據,達到鏈路調用監控跟蹤。mysql

 

在複雜的調用鏈路中假設存在一條調用鏈路響應緩慢,如何定位其中延遲高的服務呢?git

  • 日誌: 經過分析調用鏈路上的每一個服務日誌獲得結果
  • zipkin:使用zipkinweb UI能夠一眼看出延遲高的服務

 

zipkin主要涉及四個組件 collector storage search web UIgithub

  • Collector接收各service傳輸的數據
  • Cassandra做爲Storage的一種,也能夠是mysql等,默認存儲在內存中,配置cassandra能夠參考這裏
  • Query負責查詢Storage中存儲的數據,提供簡單的JSON API獲取數據,主要提供給web UI使用
  • Web 提供簡單的web界面

install

執行以下命令下載jar包web

wget -O zipkin.jar 'https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec'

其爲一個spring boot 工程,直接運行jarspring



訪問 http://ip:9411nohup java -jar zipkin.jar &

使用zipkin涉及幾個概念sql

Span:基本工做單元,一次鏈路調用(能夠是RPC,DB等沒有特定的限制)建立一個span,經過一個64位ID標識它,
span經過還有其餘的數據,例如描述信息,時間戳,key-value對的(Annotation)tag信息,parent-id等,其中parent-id
能夠表示span調用鏈路來源,通俗的理解span就是一次請求信息shell

Trace:相似於樹結構的Span集合,表示一條調用鏈路,存在惟一標識maven

Annotation: 註解,用來記錄請求特定事件相關信息(例如時間),一般包含四個註解信息分佈式

cs - Client Start,表示客戶端發起請求

sr - Server Receive,表示服務端收到請求

ss - Server Send,表示服務端完成處理,並將結果發送給客戶端

cr - Client Received,表示客戶端獲取到服務端返回信息

BinaryAnnotation:提供一些額外信息,通常已key-value對出現

相關文章
相關標籤/搜索