介绍
本文使用Sleuth和Zipkin进行分布式链路追踪,docker搭建了一个查看链路数据平台。
环境配置
1.运行docker命令
docker run -d -p 9411:9411 openzipkin/zipkin
如果使用mysql就需要用docker-compose来构建
version: '2'
services:
zipkin:
image: openzipkin/zipkin
container_name: zipkin
environment:
- STORAGE_TYPE=mysql
- MYSQL_DB=zipkin
- MYSQL_USER=jianghao
- MYSQL_PASS=JiangHao
- MYSQL_HOST=127.0.0.3
- MYSQL_TCP_PORT=3306
ports:
- 9411:9411
extra_hosts:
- localhost:host.docker.internal
2.在Springboot的pom文件中添加依赖
<zipkin.version>2.2.5.RELEASE</zipkin.version>
<brave.version>5.13.3</brave.version>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
<version>${zipkin.version}</version>
</dependency>
<dependency>
<groupId>io.zipkin.brave</groupId>
<artifactId>brave-instrumentation-dubbo</artifactId>
<version>${brave.version}</version>
</dependency>
3.配置yml文件
dubbo.provider.filter=tracing
dubbo.consumer.filter=tracing
spring.zipkin.base-url=http://localhost:9411/
spring.sleuth.sampler.probability=1.0
logging.level.org.springframework.web=DEBUG
spring.zipkin.sender.type=web
spring.zipkin.enabled=true
使用
环境配置好以后,在你使用dubbo调用服务的时候框架会自动记录traceid等信息,你也可以加自己的东西。
@Autowired
private Tracer tracer;
tracer.currentSpan().tag("key1","value2").tag("key2","value2");