Spring Cloud Sleuth 整合ZipKin 实现分布式链路追踪
spring-cloud-sleuth 整理分布式链路的跟踪数据
zipkin提供ui界面显示spring-cloud-sleuth跟踪的数据
1,搭建ZipKin服务端
1.1 加依赖
<!-- zipkin-autoconfigure-ui -->
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-autoconfigure-ui</artifactId>
<version>2.12.3</version>
</dependency>
<!-- zipkin-server -->
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-server</artifactId>
<version>2.12.3</version>
</dependency>
注意:ZipKin从 2.12.6 版本开始有个较大的更新,迁移使用 Armeria HTTP 引擎。从此版本开始,若直接添加依赖的 Spring Boot 应用启动会存在冲突,降到2.12.3版本就可以正常启动
1.2配置文件内容
#内嵌的Undertow服务器的端口
server.port=9410
#zipkin启动报错无法访问的解决方法
management.metrics.web.server.autoTimeRequests=false
1.3启动类上加入注解:@EnableZipkinServer
2,Sleuth微服务整合Zipkin
2.1各个微服务添加依赖(我这里版本号依赖了父项目)
<!-- spring-cloud-starter-sleuth -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<!-- spring-cloud-starter-zipkin -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
2.2配置文件内容
#指定Zipkin server地址
spring.zipkin.base-url=http://localhost:9410
#发送跟踪数据到zipkin的类型web(http)
spring.zipkin.sender.type=web
#request采样的数量 默认是0.1 也即是10%,即采样10%的请求数据;
#因为在分布式系统中,数据量可能会非常大,因此采样非常重要我们示例数据少最好配置为1全采样,100%的采集会稍微影响一点性能
spring.sleuth.sampler.probability=1.0
运行Zipkin服务器
在浏览器输入localhost:9410,进入zipkin的ui界面
运行想要进行链路跟踪的服务
发起调用,可以在zipkin的ui界面查看链路信息