使用springcloud + ZipKin进行分布式链路跟踪持久化到es mysql

zipKin 说明

Zipkin 是一个开放源代码分布式的跟踪系统,由Twitter公司开源,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现。

每个服务向zipkin报告计时数据,zipkin会根据调用关系通过Zipkin UI生成依赖关系图,显示了多少跟踪请求通过每个服务,该系统让开发者可通过一个 Web 前端轻松的收集和分析数据,例如用户每次请求服务的处理时间等,可方便的监测系统中存在的瓶颈。

Zipkin提供了可插拔数据存储方式:In-Memory、MySql、Cassandra以及Elasticsearch。接下来的测试为方便直接采用In-Memory方式进行存储,生产推荐Elasticsearch。

zipkin 官方不提倡自己搭建server 直接用官方文档中提供的jar

官方提供jar

启动 将数据同步到 es 先要启动es
java -jar zipkin-server-2.10.1-exec.jar  --STORAGE_TYPE=elasticsearch --ES_HOSTS=http://127.0.0.1:9200

使用springcloud + ZipKin进行分布式链路跟踪持久化到es mysql_第1张图片

创建zipkin-server项目

项目依赖


    
        org.springframework.cloud
        spring-cloud-starter-eureka
    
    
        io.zipkin.java
        zipkin-server
    
    
        io.zipkin.java
        zipkin-autoconfigure-ui
    

启动类

@SpringBootApplication
@EnableEurekaClient
@EnableZipkinServer
public class ZipkinApplication {

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

}

配置文件

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
server:
  port: 9000
spring:
  application:
    name: zipkin-server

在项目其他服务中加入


    org.springframework.cloud
    spring-cloud-starter-zipkin

   可以显示服务之间的关系

使用springcloud + ZipKin进行分布式链路跟踪持久化到es mysql_第2张图片

请求其他服务后服务的处理时间以及跟踪显示的服务

使用springcloud + ZipKin进行分布式链路跟踪持久化到es mysql_第3张图片

 

zipkin持久化数据到mysql ES

 

 

 

你可能感兴趣的:(使用springcloud + ZipKin进行分布式链路跟踪持久化到es mysql)