1.分佈式鏈路監控與追蹤產生背景
在微服務系統中,隨着業務的發展,系統會變得越來越大,那麼各個服務之間的調用關係也就變得越來越複雜。一個 HTTP 請求會調用多個不同的微服務來處理返回最後的結果,在這個調用過程中,可能會因爲某個服務出現網絡延遲過高或發送錯誤導致請求失敗,這個時候,對請求調用的監控就顯得尤爲重要了。Spring Cloud Sleuth 提供了分佈式服務鏈路監控的解決方案。下面介紹 Spring Cloud Sleuth 整合 Zipkin 的解決方案
2.Zipkin框架介紹
Zipkin 是 Twitter 的一個開源項目,它基於 Google Dapper 實現的。我們可以使用它來收集各個服務器上請求鏈路的跟蹤數據,並通過它提供的 REST API 接口來輔助查詢跟蹤數據以實現對分佈式系統的監控程序,從而及時發現系統中出現的延遲過高問題。除了面向開發的 API 接口之外,它還提供了方便的 UI 組件來幫助我們直觀地搜索跟蹤信息和分析請求鏈路明細,比如可以查詢某段時間內各用戶請求的處理時間等。
Zipkin 和 Config 結構類似,分爲服務端 Server,客戶端 Client,客戶端就是各個微服務應用。
3.Zipkin環境搭建
在 Spring Boot 2.0 版本之後,官方已不推薦自己搭建Zipkin服務端了,而是直接提供了編譯好的 jar 包。詳情可以查看官網:https://zipkin.io/pages/quickstart.html
注意:zipkin官網已經提供定製了,使用官方jar運行即可。
默認端口號啓動zipkin服務
java –jar zipkin.jar 默認端口號; 9411
http://127.0.0.1:9411
指定端口號啓動9411
java -jar zipkin.jar --server.port=8080
http://127.0.0.1:8080
4.ZipkinClient集成
Maven依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
application.yml
spring:
application:
name: app-itmayiedu-member
zipkin:
base-url: http://127.0.0.1:9411/
###全部採集
sleuth:
sampler:
probability: 1.0
5.調用鏈
啓動java –jar zipkin.jar,http://127.0.0.1:9411/可以看到相關情況