调用链总结

最近这几天改了几个调用链相关的问题,顺便做下总结

项目中引入调用链可解决的问题:
1、能够快速定位问题出在哪个部件
2、对于不同服务的性能能够准确的得到请求与相应的时间差(部件性能优化)

简单画了个图:
从调用链首节点开始,第一个span如下图所示:流程是发送一个请求给下一个服务2,然后说,我已经发送请求过去了(请求发送);2接收到1发过来的请求,说,我已经接收了他的给我的请求了(请求接收);然后开始进行处理,处理好之后,说,我已经处理好这个请求了,我要告诉我的1(响应发送);1接收到这个响应之后,说,我已经收到2的响应了(响应接收)。这就是一个span。

当然服务不可能就这两个,多个span组成一个trace,一个trace就是一个完整的调用链。
调用链总结_第1张图片

当这个流程是同步的时候,流程都是请求发送—请求接收—请求发送—请求接收—……—响应发送—响应接收—响应发送—……响应接收
如果该流程是异步的时候,各个span之间是一个小型的调用链。

对于1来说,必定会有一个traceId,同时对于2,3。。等等,traceId同1,一条调用链有一条专属的traceId。

未完待续。。

你可能感兴趣的:(java知识,调用链)