SpringCloud 使用Zipkin进行分布式跟踪
2023-11-30 15:31 更新
本示例有七个spans。如果转到Zipkin中的跟踪,则可以在第二个跟踪中看到此数字,如下图所示:
但是,如果选择特定的跟踪,则可以看到四个spans,如下图所示:
选择特定跟踪时,您会看到合并的spans。这意味着,如果有两个spans发送到Zipkin,并且带有“服务器已接收和服务器已发送”或“客户端已接收和客户端已发送”注释,它们将显示为单个跨度。
在这种情况下,为什么七个spans和四个spans之间有区别?
- 一个跨度来自
http:/start
跨度。它具有服务器已接收(sr
)和服务器已发送(ss
)批注。 - 从
service1
到service2
到http:/foo
端点的RPC调用中有两个spans。客户发送(cs
)和客户接收(cr
)事件在service1
端发生。服务器已接收(sr
)和服务器已发送(ss
)事件在service2
端发生。这两个spans构成一个与RPC调用相关的逻辑范围。 - 从
service2
到service3
到http:/bar
端点的RPC调用中有两个spans。客户发送(cs
)和客户接收(cr
)事件在service2
端发生。服务器已接收(sr
)和服务器已发送(ss
)事件在service3
端发生。这两个spans构成一个与RPC调用相关的逻辑范围。 - 从
service2
到service4
到http:/baz
端点的RPC调用中有两个spans。客户发送(cs
)和客户接收(cr
)事件在service2
端发生。服务器已收到(sr
)和服务器已发送(ss
)事件在service4
端发生。这两个spans构成一个与RPC调用相关的逻辑范围。
因此,如果我们计算物理量spans,则有一个来自http:/start
的实体,两个来自service1
的实体,调用service2
,两个来自service2
的实体,调用service3
,还有两个来自service2
致电service4
。总而言之,我们总共有七个spans。
从逻辑上讲,我们看到四个跨度的信息,因为我们有一个跨度与到service1
的传入请求有关,而有三个spans与RPC调用有关。
以上内容是否对您有帮助:
更多建议: