天天看點

spring cloud整合Sleuth的鍊路追蹤zipkin

什麼是Sleuth

Spring Cloud Sleuth 主要功能就是在分布式系統中提供追蹤解決方案,并且相容支援了 zipkin,隻需要在pom檔案中引入相應的依賴即可。

為什麼使用zipkin

在微服務架構中,大的系統會有上百個服務,而且其中服務之間調用關系複雜,在蜘蛛網似的微服務調用鍊路中尋找一條業務調用線極為複雜,zipkin就是應對這個問題

本文目錄

1、建構 server-zipkin

2、建構注冊中心

3、建構兩個服務(模拟調用鍊)

4、最終調用驗證

在spring Cloud為F版本的時候,已經不需要自己建構Zipkin Server了,隻需要下載下傳jar即可,可以使用我下面用到的版本

官方位址: ​​https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/​​

百度網盤連結:​​https://pan.baidu.com/s/1QoZQWftn3vpALcmRotpg1A​​

提取碼:3972

下載下傳完執行運作

預設端口 9411

通路

zipkin就緒後 位址 127.0.0.1:9411

spring cloud整合Sleuth的鍊路追蹤zipkin

注冊中心就緒後 位址 127.0.0.1:8761

建構服務provide-server1 和 provide-server2

為了友善示範,我們這裡使用rest方式進行服務調用

在idea中建立新的工程 工程名 例: provide-server1

在resources資源檔案下建立 application.yml,并在該application.yml檔案中加入如下配置

在啟動類加入如下代碼

建立web控制器

在idea中建立新的工程 工程名 例: provide-server2

依賴于 provide-server1 一緻

目前為止捋一下服務和環境

eureka-server 127.0.0.1:8761

zipkin-server 127.0.0.1:9411

provide-server1 127.0.0.1:8011

provide-server2 127.0.0.1:8021

全部啟動

調用下 provide-server1

spring cloud整合Sleuth的鍊路追蹤zipkin

provide-server1去調用了 provide-server2,是以傳回的是 provide-server2接口的資料,到這裡服務調用正常,那麼我們再去zipkin看看有沒有調用記錄呢

檢視zipkin調用記錄 通路127.0.0.1:9411

如果沒有記錄的話點選 查找 按鈕

spring cloud整合Sleuth的鍊路追蹤zipkin

點選這條記錄

spring cloud整合Sleuth的鍊路追蹤zipkin

可以看到這次調用的詳細資訊

我們也可以通過結構圖來檢視更直覺的調用鍊

spring cloud整合Sleuth的鍊路追蹤zipkin

可以看到在圖中清晰的調用線路,以及請求的流向,真是功能強大,更多功能自己來嘗試吧

最後說明一下,這個功能比較消耗性能,生産環境可以關閉,特别是配置 樣本收集的比率為100%

繼續閱讀