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 链路追踪服务

相关文章
相关标签/搜索