Table of Contents
1.介绍
https://spring.io/projects/spring-cloud-sleuth
随着系统规模越来越大,微服务之间调用关系变得错综复杂,一条调用链路中可能调用多个微服务,任何一个微服务不可用都可能造整个调用过程失败。
Spring Cloud Sleuth为 Spring Cloud 实现了分布式跟踪解决方案,可以跟踪调用链路,分析链路中每个节点的执行情况。
Zipkin 是一个分布式跟踪系统。它有助于收集解决服务体系结构中的延迟问题所需的时序数据。功能包括该数据的收集和查找。
如果日志文件中有跟踪ID,则可以直接跳至该跟踪ID。否则,您可以根据服务,操作名称,标签和持续时间等属性进行查询。将为您总结一些有趣的数据,例如在服务中花费的时间百分比以及操作是否失败。
2.Zipkin安装
Zipkin下载:
https://github.com/openzipkin/zipkin
或
https://dl.bintray.com/openzipkin/maven/io/zipkin/zipkin-server/
Zipkin启动:
docker run -itd -p 9411:9411 \
-v /root/docker/zipkin-server/jar/:/root/docker/zipkin-server/jar/ \
--name zipkin-test openjdk:8u111 java -jar /root/docker/zipkin-server/jar/zipkin-server-2.21.6-exec.jar
或者docker拉取镜像启动
访问 Zipkin:
http://192.168.71.128:9411/zipkin
3.Sleuth + Zipkin 链路分析
pom
<!--包含了sleuth+zipkin-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
链路数据抽样比例
默认 10% 的链路数据会被发送到 zipkin 服务。可以配置修改抽样比例
yml
#链路追踪和收集
zipkin:
base-url: http://192.168.71.128:9411
sleuth:
sampler:
probability: 1 #相当于100%收集