笔记:Sleuth 的底层逻辑

Sleuth 是通过打入到 Log 中的“卧底”来串联前后日志的。你集成了 Sleuth 组件之后,
它会向你的日志中打入三个“特殊标记”,其中一个标记你应该已经清楚了,那便是
Trace ID。剩下的两个标记分别是 Span ID 和 Parent Span ID,这俩用来表示调用的前后
顺序关系。
所谓 Span,它是 Sleuth 下面的一个基本工作单元,当服务请求抵达当前单元时,Sleuth
就会为这个单元分配一个独一无二的 Span ID,并标记单元的开始时间和结束时间,这样
就可以记录每个单元的处理用时了。
而 Parent Span ID 呢,顾名思义,它指向了当前单元的父级单元,也就是上游的调用者。
一个环环相扣的调用链就通过 Parent Span ID 被串了起来。


 

从上面的图中可以看出,这个服务请求调用了三个微服务,分别为服务 A、服务 B 和服务
C。
在一条调用链中,不管你调用了多少个微服务,Sleuth 为本次调用生成的全局唯一 Trace
ID 都会贯穿整个链路,所图中三个微服务所对应的日志 Trace ID 都是 A1。
由于服务 A 是调用链的起点,所以它并没有父级单元,因此它的 Parent Span ID 为空,
而起始单元的 Span ID 和 Trace ID 则是相同的,值都为 A1
 
对于服务 B 来说,它的父级调用单元是服务 A,因此它的 Parent Span ID 指向了服务 A
的 Span ID,即 A1;同理,服务 C 的 Parent Span ID 指向了服务 B 的 Span ID,即
B2。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值