服务链路追踪

2020-01-06

Zipkin是一个开放源码的分布式跟踪系统 ,它致力于收集服务的定时数据 .以解决微服务架构中的延迟问题 ,包括数据的收集,存储,查找和展现 .
每个服务向Zipkin报告计时数据 ,Zipkin会根据调用关系通过ZipKin UI生成依赖关系图 ,显示了多少跟踪请求通过每个服务 .

创建ZipKin服务端

1.需要的依赖

        <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>

2.开启ZipKin Server功能
在启动类上添加@EnableZipkinServer注解 ,开启ZipKin Server 功能

3.配置文件

# 添加配置 
management:
  metrics:
    web:
      server:
        #避免访问zipkin页面报java.lang.IllegalArgumentException
        auto-time-requests: false

追踪服务

1.依赖
在所有需要被追踪的项目(包括eureka注册中心) 中增加spring-cloud-starter-zipkin依赖

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

2.配置文件
在这些服务的配置文件中增加ZipKin Server的地址

spring:
  zipkin:
    base-url: ZipKin ServerIP:PORT

到这里就配置完成,实现链路追踪了 .