什麼是Zipkin?html
它是一個分佈式鏈路跟蹤系統它能夠幫助收集時間數據,每一個應用程序向Zipkin報告定時數據,Zipkin UI呈現了一個依賴圖表來展現多少跟蹤請求通過了每一個應用程序;若是想解決延遲問題,能夠過濾或者排序全部的跟蹤請求,而且能夠查看每一個跟蹤請求佔總跟蹤時間的百分比。前端
什麼要使用它?java
隨着業務愈來愈複雜,系統也隨之進行各類拆分,特別是隨着微服務架構和容器技術的興起,看似簡單的一個應用,後臺可能有幾十個甚至幾百個服務在支撐;一個前端的請求可能須要屢次的服務調用最後才能完成;當請求變慢或者不可用時,咱們沒法得知是哪一個後臺服務引發的,這時就須要解決如何快速定位服務故障點,Zipkin分佈式跟蹤系統就能很好的解決這樣的問題。spring
簡單的說zipkin就能夠實現,那個服務有問題,服務於服務之間的依賴關係,運行時間等等架構
繼續上篇說,附連接:https://www.cnblogs.com/zgwjava/p/10447542.html併發
建立zipkin模塊app
Gradle分佈式
compile 'io.zipkin.java:zipkin-server'
compile 'io.zipkin.java:zipkin-autoconfigure-ui'
ymlide
server: port: 9999 spring: application: name: zipkin-server
而後再看下啓動類微服務
package org.gw.zipkin.server; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import zipkin.server.EnableZipkinServer; /** * @DATA 2019-02-28 00:17 * @Author 張國偉 WeChat:17630376104 * @Description TODO */ @EnableZipkinServer #次註解爲標註zipkin服務端 @SpringBootApplication public class ZipkinServerProvider { public static void main(String[] args) { SpringApplication.run(ZipkinServerProvider.class, args); } }
咱們運行項目 http://localhost:9999/zipkin/
能夠看到zipkin服務端已經啓動,在這上面能夠查看服務間調用記錄,要想實現鏈路追蹤必須服務之間有依賴關係也就是調用關係,有RestTemplate在上一章咱們已經說過服務間如何調用。
咱們再來看下客戶端如何配置
#eureka客戶端 server: port: 10001 spring: application: name: project-shopping-mall thymeleaf: prefix: classpath:/templates/ cache: false zipkin: base-url: http://localhost:9999/ sleuth: sampler: percentage: 1.0 #0.1-1.0鏈路跟蹤的數據上傳的機率,百分比 eureka: client: service-url: defaultZone: http://localhost:8888/eureka/ instance: prefer-ip-address: true logging: path: /Users/mac/logs/shop level: org.gw.shopping.mai: info
我在controller這裏加上了日誌
咱們看下控制檯,爲了測試我刷新了好幾回,調用了好幾回
能夠看到有兩個id,和一個true,true爲是否想zikpin上傳數據,接下來咱們看下zipkin服務端
能夠看到剛剛服務之間的調用信息,咱們點擊某一個
能夠清晰的看到服務的信息,相應時間,固然也能夠經過控制檯的信息來查找服務調用信息,咱們再來看下依賴
清晰的看到那個服務調用了那個服務。
併發量大的時候普通的日誌處理不了這麼多信息,如何出異常了很難判斷究竟是那個服務,那一邊出了問題,因此zipkin鏈路解決這個問題,任何問題清晰可見。
最後再看下服務客戶端gradle添加的依賴,上面忘說了
compile 'org.springframework.cloud:spring-cloud-starter-sleuth' compile 'org.springframework.cloud:spring-cloud-sleuth-zipkin'
客戶端必須添加這兩個依賴
下一章健康檢查,感謝支持!!!