在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的结果,每一个前段请求都会形成一个复杂的分布式微服务调用链路,链路中的任何一个节点出现错误或者高延迟都会导致整个链路的调用失败。
Sleuth
完整调用链路
- 一条链路通过Trace id唯一标识,Span标识发起的请求信息,各Span通过parent id关联起来
- Trace:类似于树结构的Span集合,表示一条调用链路,存在唯一标识
- Span:表示调用链路来源,可以理解为一次请求信息
实操
- Zipkin下载配置:
- 下载链接:https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/
- 下载此版本——zipkin-server-2.12.9-exec.jar
- cmd运行:
java -jar zipkin-server-2.12.9-exec.jar
- 访问地址:http://localhost:9411
- 与项目整合配置
- pom文件
<!-- 包含了sleuth zipkin 数据链路追踪-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
- yml文件
spring:
application:
name: cloud-order-service
zipkin:
base-url: http://localhost:9411
sleuth:
sampler:
# 采样率值介于0到1之间,1表示全部采集
probability: 1