https://docs.spring.io/spring-cloud-sleuth/docs/2.2.5.RELEASE/reference/html/html
爲何要使用微服務跟蹤?它解決了什麼問題?前端
微服務的現狀
隨着業務的發展,單體架構變爲微服務架構,而且系統規模也變得愈來愈大,各微服務間的調用關係也變得愈來愈複雜。
多服務協同工做
在微服務的應用中,一個由客戶端發起的請求在後端系統中會通過多個不一樣的微服務調用來協同產生最後的請求結果
複雜的調用鏈條容易出錯
在複雜的微服務架構系統中,幾乎每個前端請求都會造成一個複雜的分佈式服務調用鏈路,在每條鏈路中任何一個依賴服務出現延遲超時或者錯誤都有可能引發整個請求最後的失敗spring
例如:
在微服務系統中,一個來自用戶的請求,請求先達到前端A(如前端界面)而後經過遠程調用,到達系統中間件B,C(負載均衡,網關等),最後達到後端服務D,E,後端通過一系列的業務邏輯計算最後將數據返回給用戶,對於這樣一個請求,經歷了這麼多個服務,怎麼樣將它的請求過程的數據記錄下來呢?這就須要用到服務鏈路追蹤docker
微服務跟蹤(sleuth)實際上是一個工具,它在整個分佈式系統中能跟蹤一個用戶請求的過程(包括數據採集,數據傳輸,數據存儲,數據分析,數據可視化),捕獲這些跟蹤數據,就能構建微服務的整個調用鏈的視圖,這是調試和監控微服務的關鍵工具。
SpringCloudSleuth有4個特色後端
首先在全部要在鏈路跟蹤代碼裏面引入依賴:瀏覽器
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency>
而後在全部要在鏈路跟蹤配置中配置架構
#鏈路跟蹤設置
logging:
level:
root: debug
spring: zipkin: base-url: http://192.168.0.23:9411/
而後docker安裝zipkin負載均衡
一、拉鏡像分佈式
docker pull openzipkin/zipkin
二、運行鏡像微服務
docker run -d --restart always -p 9411:9411 --name zipkin openzipkin/zipkin
在瀏覽器輸入地址:http://192.168.0.23:9411/zipkin/
感受這是最水軍的一篇幅了