美文网首页
APM的span存储疑问

APM的span存储疑问

作者: AI云栈 | 来源:发表于2019-04-04 23:27 被阅读0次

    A服务调用B服务,是如何存储span的?

    问题描述

    A方调用B方,A方知道自己的服务名,ip,traceId等,也可以知道调用耗时,但不一定知道B方所在的ip、serviceName。这种情况如何处理span存储?

    解决思路

    A调用B时,声明一个span,将创建的spanid传递到B,对于接收方B,能拿到span的id信息,又能获取自己的serviceName和ip信息。构成了一个完整的span链。

    这里有两种实现方案:

    A方不记录span信息,B接收到span后,记录整个span信息,这样的span发起方和接收方是同一条数据。

    A方记录span的发起方信息,B记录span的接收方信息。这样同一个span会有发起方和接收方两条数据。

    第一个方案缺点是:假如B方是外部的系统,如果A不记录,这条记录就丢失了。所以可以排除。

    第二个方案缺点是:同一个span记录两条数据,对应调用耗时及共用属性存储哪里为好?

    由于第一个方案丢失数据风险,只能去完善第二个方案,发起方能获取到的存储在发起方,接收方能获取到存储在接收方。

    先思考到这里,后期再补。

    相关文章

      网友评论

          本文标题:APM的span存储疑问

          本文链接:https://www.haomeiwen.com/subject/xjbciqtx.html