一、Zipkin介紹
? ? ? ? Zipkin是一個開放源代碼分布式的跟蹤系統,它可以幫助收集服務的時間數據,以解決微服務架構中的延遲問?題,包括數據的收集、存儲、查找和展現。每個服務向zipkin報告計時數據,zipkin會根據調用關系通???過Zipkin?UI生成依賴關系圖,展示多少跟蹤請求經過了哪些服務,該系統讓開發者可通過一個web前端?輕松地收集和分析數據,可非常方便的監測系統中存在的瓶頸。
????????
????????它可以幫助收集服務的時間數據,以解決微服務架構中的延遲問題,包括數據的收集、存儲、查找?和展現。
?????????每個服務向zipkin報告計時數據,zipkin會根據調用關系通過Zipkin?UI生成依賴關系圖,展示多少 ?跟蹤請求經過了哪些服務,該系統讓開發者可通過一個web前端輕松地收集和分析數據,可非常方便的監測系統中存在的瓶頸。
二、Spring Cloud Sleuth
????????為服務之間的調用提供鏈路追蹤,通過使用Sleuth可以讓我們快速定位某個服務的問題。分布式服務追?蹤系統包括:數據收集、數據存儲、數據展示。通過Sleuth產生的調用鏈監控信息,讓我們可以得知微?服務之間的調用鏈路,但是監控信息只輸出到控制臺不太方便查看。
????????Sleuth和Zipkin結合,將信息發送到Zipkin,利用Zipkin的存儲來存儲信息,利用Zipkin?UI來展示信?息。
? ? ? ? SpringCloud Sleuth有4個特點:
特點 | 說明 |
提供鏈 路追蹤 | 通過sleuth可以很清楚的看出一個請求經過了哪些服務, ?可以方便的理清服務局的調?用關系 |
性能分 析 | 通過sleuth可以很方便的看出每個采集請求的耗時, ?分析出哪些服務調用比較耗時,??當服務調用的耗時 隨著請求量的增大而增大時,也可以對服務的擴容提 供一定的提醒?作用 |
數據分 析優 化鏈路 | 對于頻繁地調用一個服務,或者并行地調用等, ?可以針對業務做一些優化措施 |
可視化 | 對于程序未捕獲的異常,可以在zipkpin界面上看到 |
三、Zipkin 安裝
????????關于zipkin在上面我們已經介紹了,我們接下來講解zipkin的安裝。
1)下載?
? 下載地址:Central Repository: io/zipkin/zipkin-server? ? ??
2)運行?
?????????運行?zipkin-server-2.12.9-exec.jar?,java?-jar?zipkin-server-2.12.9-exec.jar?回車即可運行,并訪問http://localhost:9411/zipkin/
http://localhost:9411/zipkin/?效果如下:
?
三、Sleuth鏈路追蹤
1)引入依賴?
? ? ? ? 引入ziplin,它自身已經依賴了sleuth,我們再hailtaxi-order依賴包中引入:
<!--zipkin--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zipkin</artifactId><version>2.2.2.RELEASE</version></dependency>
?依賴關系如下圖:
?2)配置服務地址
????????修改?hailtaxi-order?的配置文件?applicatin.yml添加如下配置:
server:port: 18082
spring:application:name: hailtaxi-orderzipkin:#zipkin服務地址base-url: http://localhost:9411sleuth:sampler:probability: 1 #采樣值,0~1之間,1表示全部信息都手機,值越大,效率越低
?我們執行一次下單調用?http://localhost:18082/order?,再看zipkin控制臺:
?我們剛才調用的鏈路如下圖:
?????????分布式服務追蹤系統包括:數據收集、數據存儲、數據展示,通過Sleuth產生的調用鏈監控信息,讓我們可以得知微服務之間的調用鏈路,但是監控信息只輸出?到控制臺不太方便查看,Sleuth和Zipkin結合,將信息發送到Zipkin,利用Zipkin的存儲來存儲信息,利用Zipkin?UI來展示?信息。