【分散式跟蹤系統Zipkin 介紹】

lijieshare發表於2018-01-30

zipkin為分散式鏈路呼叫監控系統,聚合各業務系統呼叫延遲資料,達到鏈路呼叫監控跟蹤。

 

Zipkin 是 Twitter 的一個開源專案,允許開發者收集 Twitter 各個服務上的監控資料,並提供查詢介面。

 

Zipkin is a distributed tracing system. It helps gather timing data needed to troubleshoot latency problems in microservice architectures. It manages both the collection and lookup of this data. Zipkin’s design is based on the Google Dapper paper.

This project includes a dependency-free library and a spring-boot server. Storage options include in-memory, JDBC (mysql), Cassandra, and Elasticsearch.

 

 

zipkin主要涉及四個元件 collector storage search web UI

Collector接收各service傳輸的資料

Cassandra作為Storage的一種,也可以是mysql等,預設儲存在記憶體中,配置cassandra可以參考這裡

Query負責查詢Storage中儲存的資料,提供簡單的JSON API獲取資料,主要提供給web UI使用

Web 提供簡單的web介面

 

Zipkin 使用 Apache Cassandra 做為資料儲存系統,使用 Apache ZooKeeper – the Hadoop configuration management software – for coordination, and Facebook's Scribe data aggregation system as the logging framework to transport the trace data.

 

zipkin作用

全鏈路追蹤工具(根據依賴關係)

檢視每個介面、每個service的執行速度(定位問題發生點或者尋找效能瓶頸)

 

zipkin工作原理

創造一些追蹤識別符號(tracingId,spanId,parentId),最終將一個request的流程樹構建出來

 

zipkin架構



 

其中:

Collector接收各service傳輸的資料;

Cassandra作為Storage的一種,也可以是mysql等,預設儲存在記憶體中,配置cassandra可以參考這裡;

Query負責查詢Storage中儲存的資料,提供簡單的JSON API獲取資料,主要提供給web UI使用;

Web 提供簡單的web介面;

 

zipkin分散式跟蹤系統的目的:

zipkin為分散式鏈路呼叫監控系統,聚合各業務系統呼叫延遲資料,達到鏈路呼叫監控跟蹤;

zipkin通過採集跟蹤資料可以幫助開發者深入瞭解在分散式系統中某一個特定的請求時如何執行的;

假如我們現在有一個使用者請求超時,我們就可以將這個超時的請求呼叫鏈展示在UI當中;我們可以很快度的定位到導致響應很慢的服務究竟是什麼。如果對這個服務細節也很很清晰,那麼我們還可以定位是服務中的哪個問題導致超時;

zipkin系統讓開發者可通過一個Web前端輕鬆的收集和分析資料,例如使用者每次請求服務的處理時間等,可方便的監測系統中存在的瓶頸。

相關文章