Spring Cloud 中使用 ZipKin 鏈路追蹤服務

Zipkin 簡介

ZipKin 是一個開放源代碼的分佈式跟蹤系統,用於收集服務的定時數據,以解決微服務架構中的延遲問題。包括數據的收集、存儲、查找和展示。前端

每一個服務向 Zipkin 報告計時數據,Zipkin 會根據調用關係經過 Zipkin UI 生成依賴關係圖,顯示了多少跟蹤請求經過每一個服務。該組件可讓咱們經過一個 Web 前端輕鬆的收集和分析數據。例如用戶每次請求服務的處理時間等,可方便的監測系統中存在的瓶頸。java

服務追蹤說明

微服務架構是經過業務來劃分服務的,使用 REST 調用。對外暴露的一個接口,可能須要不少個服務協同才能完成這個接口功能。web

若是鏈路上任何一個服務出現問題或者網絡超時,都會造成致使接口調用失敗。spring

隨着業務的不斷擴張,服務之間互相調用會愈來愈複雜。隨着服務的愈來愈多,對調用鏈的分析會愈來愈複雜,以下圖:瀏覽器

Spring Cloud 中使用 ZipKin 鏈路追蹤服務

Zipkin 服務端

引入依賴

pom.xml 主要添加 zipkinzipkin-serverzipkin-autoconfigure-ui 依賴網絡

<dependency>
    <groupId>io.zipkin.java</groupId>
    <artifactId>zipkin</artifactId>
</dependency>
<dependency>
    <groupId>io.zipkin.java</groupId>
    <artifactId>zipkin-server</artifactId>
</dependency>
<dependency>
    <groupId>io.zipkin.java</groupId>
    <artifactId>zipkin-autoconfigure-ui</artifactId>
</dependency>

注意: 這裏的 zipkin 版本號爲 2.10.1,須要將版本號託管到統一依賴管理項目中架構

相關配置

application.yml 主要添加 zipkin 的相關配置app

management:
  metrics:
    web:
      server:
        auto-time-requests: false

Application 啓動類中經過 @EnableZipkinServer 註解開啓 Zipkin Server 功能分佈式

@SpringBootApplication
@EnableEurekaClient
@EnableZipkinServer
public class ZipkinApplication {
    public static void main(String[] args) {
        SpringApplication.run(ZipkinApplication.class, args);
    }
}

Spring Cloud Zipkin 客戶端

引入依賴

在統一依賴管理項目中繼承 Spring Boot 2.0.2.RELEASE 父項目,並聲明 Spring Cloud Finchley.RC1 依賴版本。ide

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.2.RELEASE</version>
</parent>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.RC1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

在當前項目 pom.xml 中主要添加依賴 spring-cloud-starter-zipkin

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

相關配置

application.yml 中添加 zipkin 地址便可

spring:
  zipkin:
    base-url: http://localhost:9411

測試服務追蹤

啓動所有項目,打開瀏覽器訪問:http://localhost:9411 ,出現如下界面

Spring Cloud 中使用 ZipKin 鏈路追蹤服務

點擊 Find a trace,能夠看到具體服務相互調用的數據

Spring Cloud 中使用 ZipKin 鏈路追蹤服務

點擊 Dependencies,能夠發現服務的依賴關係

Spring Cloud 中使用 ZipKin 鏈路追蹤服務

相關文章
相關標籤/搜索