什麼是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
注冊中心就緒後 位址 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
provide-server1去調用了 provide-server2,是以傳回的是 provide-server2接口的資料,到這裡服務調用正常,那麼我們再去zipkin看看有沒有調用記錄呢
檢視zipkin調用記錄 通路127.0.0.1:9411
如果沒有記錄的話點選 查找 按鈕
點選這條記錄
可以看到這次調用的詳細資訊
我們也可以通過結構圖來檢視更直覺的調用鍊
可以看到在圖中清晰的調用線路,以及請求的流向,真是功能強大,更多功能自己來嘗試吧
最後說明一下,這個功能比較消耗性能,生産環境可以關閉,特别是配置 樣本收集的比率為100%