轉:https://blog.csdn.net/liaokailin/article/details/52077620java
zipkin
爲分佈式鏈路調用監控系統,聚合各業務系統調用延遲數據,達到鏈路調用監控跟蹤。mysql
在複雜的調用鏈路中假設存在一條調用鏈路響應緩慢,如何定位其中延遲高的服務呢?git
zipkin
的web UI
能夠一眼看出延遲高的服務
zipkin
主要涉及四個組件 collector
storage
search
web UI
github
Collector
接收各service傳輸的數據Cassandra
做爲Storage
的一種,也能夠是mysql等,默認存儲在內存中,配置cassandra
能夠參考這裏Query
負責查詢Storage
中存儲的數據,提供簡單的JSON API
獲取數據,主要提供給web UI
使用Web
提供簡單的web界面執行以下命令下載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對出現