使用zipkin+elasticsearech+brave對dubbo服務進行鏈路跟蹤
阿新 • • 發佈:2018-12-30
(一)我們先說下能為我們做什麼?
1.zipkin為分散式鏈路呼叫監控系統,聚合各業務系統呼叫延遲資料,達到鏈路呼叫監控跟蹤;
2.zipkin系統讓開發者可通過一個Web前端輕鬆的收集和分析資料,例如使用者每次請求服務的處理時間等,可方便的監測系統中存在的瓶頸。
2.1服務之間的呼叫關係圖可以通過依賴進入檢視:
3.zipkin通過採集跟蹤資料可以幫助開發者深入瞭解在分散式系統中某一個特定的請求時如何執行的。提供了呼叫的方法名,引數以及響應結果。
4.如果再服務呼叫階段發生了異常資訊,也會把呼叫的異常資訊展示出來:
(二)Zipkin提供了可插拔資料儲存方式:In-Memory,MySql, Cassandra, Elasticsearch;
我選用了最簡單支援的elasticsearch進行儲存zipkin接收的資料,分為兩個部分,一個是span的資料,另外一個是dubbo依賴圖的對映資料:
下面開始說明如何整合這個工具:
先在dubbo所在的專案pom上依賴:
<dependency>
<groupId>io.zipkin.brave</groupId>
<artifactId>brave-dubbo</artifactId>
<version>1.0.2-SNAPSHOT</version>
</dependency>
在spring配置檔案內加入:
<bean id="brave" class="com.ncarzone.zipkin.brave.dubbo.BraveFactoryBean" p:serviceName="demo-consumer" p:zipkinHost="http://192.168.14.87:9411/" p:rate="1.0" />
其中service是dubbo專案的名稱,zipkinhost是zipkin服務地址,rate設定取樣比率。
只需要在專案中執行上面兩個步驟即可整合上述功能。