SpringCloud-sleuth-zipkin鏈路追蹤

 

什麼是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'

客戶端必須添加這兩個依賴

下一章健康檢查,感謝支持!!!

相關文章
相關標籤/搜索