调用链是指在分布式系统中,由多个服务相互调用形成的一系列调用关系。每当一个服务调用另一个服务时,就会形成一个调用链。调用链可以显示出服务之间的调用顺序和层次关系,帮助开发人员理解和追踪代码的执行流程。
调用链的作用
在分布式系统中,一个请求往往需要通过多个服务来完成。当出现问题时,如请求超时、错误或异常,很难快速定位问题所在。调用链可以帮助运维人员解决以下问题:
故障排查:当请求失败或出现错误时,调用链可以显示整个请求的路径和每个服务的执行情况,从而帮助运维人员快速定位问题所在。
性能优化:通过调用链,运维人员可以了解请求在系统中的执行时间和瓶颈所在,从而进行优化。
系统监测:调用链可以提供实时的系统监测和分析,帮助运维人员了解系统的健康状况和资源利用情况。
常用术语
Trace
一个Trace代表一次请求或事务从开始到结束的完整执行过程。例如来自客户端的一个请求从接收到处理完成的过程就是一个Trace。Trace可以看作是一个树状结构,其中包含了多个Span。每个Trace都被赋予一个唯一的 TraceID,它在一个请求的整个调用链中保持不变。当需要追踪或调试整个请求流程时,可以通过Trace ID检索所有相关的信息。
Span
Span是分布式追踪的最小跟踪单位,代表调用链中的一个单独的逻辑操作,可以是一次方法调用、一个程序块的调用、 或者一次RPC/数据库访问等。每个Span都有SpanID,并记录操作的开始时间和结束时间。Span还会记录ParentSpanID,即当前Span是由哪个上游Span调用的,表示调用关系中的父子关系。Span之间通过父子关系链接,形成一个调用链。
文档内容是否对您有帮助?