A服務(wù)調(diào)用B服務(wù)龟再,是如何存儲span的书闸?
問題描述
A方調(diào)用B方,A方知道自己的服務(wù)名利凑,ip浆劲,traceId等,也可以知道調(diào)用耗時哀澈,但不一定知道B方所在的ip牌借、serviceName。這種情況如何處理span存儲割按?
解決思路
A調(diào)用B時膨报,聲明一個span,將創(chuàng)建的spanid傳遞到B适荣,對于接收方B现柠,能拿到span的id信息,又能獲取自己的serviceName和ip信息弛矛。構(gòu)成了一個完整的span鏈晒旅。
這里有兩種實(shí)現(xiàn)方案:
A方不記錄span信息,B接收到span后汪诉,記錄整個span信息废恋,這樣的span發(fā)起方和接收方是同一條數(shù)據(jù)。
A方記錄span的發(fā)起方信息扒寄,B記錄span的接收方信息鱼鼓。這樣同一個span會有發(fā)起方和接收方兩條數(shù)據(jù)。
第一個方案缺點(diǎn)是:假如B方是外部的系統(tǒng)该编,如果A不記錄迄本,這條記錄就丟失了。所以可以排除课竣。
第二個方案缺點(diǎn)是:同一個span記錄兩條數(shù)據(jù)嘉赎,對應(yīng)調(diào)用耗時及共用屬性存儲哪里為好?
由于第一個方案丟失數(shù)據(jù)風(fēng)險于樟,只能去完善第二個方案公条,發(fā)起方能獲取到的存儲在發(fā)起方,接收方能獲取到存儲在接收方迂曲。
先思考到這里靶橱,后期再補(bǔ)。