sleuth 链路跟踪
随着系统规模越来越大,微服务之间调用关系变得错综复杂,一条调用链路中可能调用多个微服务,任何一个微服务不可用都可能造整个调用过程失败。
spring cloud sleuth 可以跟踪调用链路,分析链路中每个节点的执行情况。
微服务中添加 spring cloud sleuth 依赖
修改以下微服务的 pom.xml,添加 sleuth 依赖
- sp02-itemservice
- sp03-userservice
- sp04-orderservice
- sp06-zuul
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
在控制台查看链路跟踪日志
通过 zuul 网关,访问 order-service
http://localhost:3001/order-service/112233
四个微服务的控制台日志中,可以看到以下信息:
[服务id,请求id,span id,是否发送到zipkin]
-
请求id:请求到达第一个微服务时生成一个请求id,该id在调用链路中会一直向后面的微服务传递。
-
span id:链路中每一步微服务调用,都生成一个新的id。
[zuul,6c24c0a7a8e7281a,6c24c0a7a8e7281a,false]
[order-service,6c24c0a7a8e7281a,993f53408ab7b6e3,false]
[item-service,6c24c0a7a8e7281a,ce0c820204dbaae1,false]
[user-service,6c24c0a7a8e7281a,fdd1e177f72d667b,false]