zipkin搭建分布式微服务跟踪平台
zipkin用于跟踪微服务之间的调用过程 ,具体概念不介绍了,给出搭建过程
- 被跟踪的微服务简称为zipkin client ,收集跟踪信息的简称为zipkin server,client和server之间支持几种通信方式,同步的HTTP,异步的Kafka或者rabbitmq,server端的存储有几种方式,不用数据库直接存在内存,存在mysql,存在ES,或者cassadala,如下
- 按照由易到难的顺序会依次给出搭建过程,入门:Http+内存 --> Http+Mysql --> Kafka+Mysql --> Kafka + ES ,入门篇是Http + 内存的简易教程
Http+内存
Client端:
依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>
不写依赖版本需要添加(或者不添加下面的,自己写依赖版本):
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
配置:
spring.zipkin.enabled=true #默认是true,可以省略
spring.sleuth.sampler.percentage=1 #默认是0.1,收集10%的信息,1代表全量收集
spring.zipkin.baseUrl=http://ip:port #配置的是zipkinserver的地址,默认是localhost:9411
server端:
依赖:
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-server</artifactId>
</dependency>
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-autoconfigure-ui</artifactId>
</dependency>
配置:
server.port = 9441 #我把端口改成9441避免干扰,通常是9411
zipkin.storage.type = mysql
spring.datasource.url = jdbc:mysql://192.168.xx.xx:3306/ifaas_trace ##数据库地址
spring.datasource.username = xxx #数据库用户名
spring.datasource.password = xxx #数据库密码
spring.datasource.driver-class-name = com.mysql.jdbc.Driver
spring.datasource.schema[0] = classpath:/ifaas_trace.sql #指定初始化数据库的sql脚本位置
spring.datasource.initialize = true
spring.datasource.continue-on-error = true
####总结
- 到这两端就搭建完成了,启动server端可以初始化数据库,访问client,即可在server端页面查看调用信息,后续附上源码