逻辑拓扑复杂,对服务节点的管理困难,难于用户调用链的追踪,有没有一些技术方案对调用链进行追踪实现性能问题定位呢?为了实现用户调用链的追踪,需要做几件事:首先需要生成一个Transaction ID标识用户的一次请求,然后将Transaction ID随着Http request向后传递,最后通过数据建模、分析将调用链理清楚。目前实现调用链的追踪可以采用如下两种方式:第一、需要研发把Transaction ID写到Log文件里面,多个应用的Log集中管理,如果是一两个应用的话还比较简单,可以通过脚本或一小段代码来明确它们的关系,如果分布式的微服务集群,问题就会变得复杂,动辄几TB数据量以及错综复杂的调用关系,这时需要用专门的数据分析、检索工具。另一种方法就是基于传输协议,从传输协议上作出一定的改变,对于Http协议,在Request Header中增加Transaction ID数据,经过网络传输,接收到该Transaction ID的服务记录下调用关系,并将Transaction ID继续向后传递,直到服务的末端;而对于RPC的协议,Dubbo attachment、Thrift body field 等都可以帮助我们实现调用链的追踪,从而定位性能问题。
【免责声明】本文仅代表作者个人观点,与中国数码招商网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。您若对该稿件内容有任何疑问或质疑,请联系本网将迅速给您回应并做处理。