CN111897604A - 服务调用的调用数据处理方法及装置 - Google Patents
服务调用的调用数据处理方法及装置 Download PDFInfo
- Publication number
- CN111897604A CN111897604A CN202010750986.XA CN202010750986A CN111897604A CN 111897604 A CN111897604 A CN 111897604A CN 202010750986 A CN202010750986 A CN 202010750986A CN 111897604 A CN111897604 A CN 111897604A
- Authority
- CN
- China
- Prior art keywords
- calling
- call
- node
- address
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开公开了一种服务调用的调用数据处理方法及装置、电子设备及存储介质。本公开涉及信息技术领域,尤其涉及服务的调用、用于搜索的架构技术领域。所述服务调用的调用数据处理方法,包括:从父节点接收针对本节点的请求上下文;所述请求上下文包括:请求标识ID及所述父节点调用本节点的本调用ID;向子节点发送针对所述子节点的请求上下文,其中,针对所述子节点的请求上下文包括:所述请求ID及本节点调用所述子节点的子调用ID;其中,所述子调用ID为:根据所述本调用ID及本节点调用子节点的调用地址生成的;存储所述请求ID、所述本调用ID及所述调用地址。
Description
技术领域
本公开涉及信息技术领域,尤其涉及服务的调用、用于搜索的架构技术领域。本公开涉及一种服务调用的调用数据处理方法及装置、电子设备及存储介质。
背景技术
在数量庞大的节点的微服务系统中,一个请求会被发散成多个请求并行地请求下游服务,请求经历的服务调用链十分复杂。构建一个全量调用链trace系统对于系统行为分析十分必要。现有的调用链的包括唯一标识调用链的请求(trace)标识(Identity,ID)和针对每一个被调用节点生成的调用(span)ID。然而,在上述处理需要对调用ID进行完整的存储,如此会出现数据冗余的问题。
发明内容
本公开提供了一种服务调用的调用数据处理方法及装置、电子设备及存储介质。
本公开实施例第一方面提供一种服务调用的调用数据处理方法,包括:
从父节点接收针对本节点的请求上下文;所述请求上下文包括:请求标识ID及所述父节点调用本节点的本调用ID;
向子节点发送针对所述子节点的请求上下文,其中,针对所述子节点的请求上下文包括:所述请求ID及本节点调用所述子节点的子调用ID;其中,所述子调用ID为:根据所述本调用ID及本节点调用子节点的调用地址生成的;
存储所述请求ID、所述本调用ID及所述调用地址。
本公开实施例第二方面提供一种服务调用的调用数据处理方法,包括:
根据请求ID,从旁路存储区域读取调用信息;
根据父节点的所述调用信息包含的请求ID、本调用ID及调用地址,得到调用子节点的子调用ID;
根据各节点的本调用ID及所述子调用ID,恢复调用链。
本公开实施例第三方面提供一种服务调用的跟踪数据处理装置,包括:
接收模块,用于从父节点接收针对本节点的请求上下文;所述请求上下文包括:请求标识ID及所述父节点调用本节点的本调用ID;
发送模块,用于向子节点发送针对所述子节点的请求上下文,其中,针对所述子节点的请求上下文包括:所述请求ID及本节点调用所述子节点的子调用ID;其中,所述子调用ID为:根据所述本调用ID及本节点调用子节点的调用地址生成的;
第一存储模块,用于存储所述请求ID、所述本调用ID及所述调用地址。
本公开实施例第四方面提供一种服务调用的跟踪数据处理装置,其中,包括:
读取模块,用于根据请求ID,从旁路存储区域读取调用信息;
处理模块,用于根据父节点的所述调用信息包含的请求ID、本调用ID及调用地址,得到调用子节点的子调用ID;
恢复模块,用于根据各节点的本调用ID及所述子调用ID,恢复调用链。
本公开实施例第五方面提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述第一方面或第二方面中任一项所述的方法。
本公开实施例第六方面提供一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行前述第一方面或第二方面中任一项所述的方法。
根据本公开提供的技术方案,调用ID不再是随机生成的随机数或按照需要生成的数字,而是根据本调用ID和本节点调用子节点的调用地址生成,若采用这种方式生成的子调用ID发送给子节点,而本节点就无需再存储子调用ID,减少了服务调用中链式调用的父节点存储的调用子节点的子调用ID所消耗的存储空间,减少了存储开销,也减少了数据存储冗余。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例提供的一种服务调用的调用数据处理方法的流程示意图;
图2是根据本公开实施例提供的一种服务调用的调用链的示意图;
图3是根据本公开实施例提供的一种服务调用的调用数据处理方法中节点之间的层级关系示意图;
图4是一种调用信息的示意图;
图5是一种旁路存储的调用信息的示意图;
图6是根据本公开实施例提供的一种服务调用的调用链的示意图;
图7是根据本公开实施例提供的一种调用信息的旁路存储示意图;
图8是根据本公开实施例提供的一种服务调用的调用链的示意图;
图9是一种调用信息的旁路存储示意图;
图10是根据本公开实施例的一种服务调用的调用数据处理装置的结构示意图一;
图11是根据本公开实施例的一种服务调用的调用数据处理装置的结构示意图二;
图12是可以实现本公开实施例提供的电子设备的结构示意图;
图13为一种可以应用本公开实施例提供的服务调用的调用数据处理方法的搜索架构示意图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
如图1所示,本公开实施例提供一种服务调用的调用数据处理方法,包括:
S11:从父节点接收针对本节点的请求上下文;所述请求上下文包括:请求标识ID及所述父节点调用本节点的本调用ID;
S12:向子节点发送针对所述子节点的请求上下文,其中,针对所述子节点的请求上下文包括:所述请求ID及本节点调用所述子节点的子调用ID;其中,所述子调用ID为:根据所述本调用ID及本节点调用子节点的调用地址生成的;
S13:存储所述请求ID、所述本调用ID及所述调用地址。
本节点可为服务请求的响应平台中的一个节点。本申请的服务请求可为:能够被拆分成多个微服务分别响应的服务请求。本公开实施例的服务请求包括但不限于搜索请求。
链式调用中的节点可以形成树状结构,调用节点和被调用节点之前具有层级关系,上一层的节点可以称之为父节点,下一层的节点可以称之为子节点。
参考图2所示,A(1.1.1.1:1)是根节点。一个服务请求到达A,A将它发送给2个下游节点B1(2.2.2.2:2)和B2(3.3.3.3:3)。B1将它进一步发给2个下游节点C1(4.4.4.4:4)和C2(5.5.5.5:5)。整个请求被叫请求(trace),具有一个唯一标识,叫请求ID(trace ID)。这个请求一共触发了5次调用链,分别是:用户设备→A、A→B1、A→B2、B1→C1及B1→C2。
这5次调用形成的调用链对应5个调用(span),分别具有5个span表识,叫span ID。span之间根据调用链的层级,具有父子关系。例如,B1→C1的父span是A→B1。父span的标识记为父调用ID(parent span ID)。在本节点中进行存储时,站在子节点的角度,则父节点仅存储父调用ID、调用地址及请求ID,站在本节点的角度,则本节点存储的就是本调用ID。从例子可以看出,一个服务是一组调用的集合。Trace ID:请求的唯一标识。Span D:本调用链的唯一标识一次调动。parent span ID:父调用链的唯一标识,和span ID一起可恢复出整个请求的调用树。
父节点调用子节点的调用地址可由:父节点的地址和父节点调用子节点所使用端口的端口号组成。
例如,一个父节点的网络协议(Internet Protocol,IP)调用址为:192.168.128.111,使用的端口号为:53;则该调用地址为:192.168.128.111:53。
参考图3所示为调用链之间的节点具有的层级关系的一种示意图。例如,根节点(root)与地址为2.2.2.2:2的节点之间是父子关系;根节点是父节点,而地址为2.2.2.2:2的节点之间是子关系节点。地址为2.2.2.2:2的节点与地址为4.4.4.4:4之间是父子关系,地址为2.2.2.2:2的节点为父节点,而地址为4.4.4.4:4之间是子节点。且地址为2.2.2.2:2的节点与地址为5.5.5.5:5之间是父子关系,地址为2.2.2.2:2的节点为父节点,而地址为5.5.5.5:5之间是子节点。与此同时,根节点与地址为3.3.3.3:3的节点之间是父子关系,即根节点是父节点,而地址为3.3.3.3:3的节点之间是子节点。
图4所示为一种按照随机算法或者顺序排序的算法等生成span ID的示意图。参考图4所示,一个服务请求到来后,在根节点A上,先按随机算法或其他算法(不影响本发明)生成一个trace ID,例如,值为123456。这个trace ID后续会随请求发送到任何到达的地方。然后,再按随机算法或其他算法(不影响本发明)为用户设备→A这个span生成一个spanID,例如为1;还为用户设备→A这个span设定一个parent span ID,例如,为0。需要特殊说明一下,用户→A(1.1.1.1:1)这个span,涉及到用户端的数据,这个span不作一般性处理,本文后续也不详细论述。
然后,A将请求发给B1(2.2.2.2:2),这样又产生一个子span ID。这个span ID在A上对应一个span对象。该span对象内可记录有:
trace ID=123456;
parent span ID=1。这里代表用户设备→A这个span,即根节点。
span ID=2。这仍然是按随机算法或其他算法(不影响本发明)生成的。
addr=2.2.2.2:2。这是B1的IP:port,即调用地址包含:IP地址和端口号。
以上4个信息均需要存储在节点A上。
需要注意的是,一个调用(span)涉及两个节点,所以,对于这个span,在B1节点上仍然对应了一个span对象,存储了这些信息:
trace ID=123456。
parent span ID=1。这里代表用户设备→A这个span,即根节点。
span ID=2。这仍然是按随机算法或其他算法生成的。
这3个信息是A通过服务请求发送下来的,和节点A上的span对象中存储的数据是一致的。
例如,在S11中,若本节点不是服务调用的根节点,从父节点接收针对本节点的请求上下文;所述请求上下文包括:请求标识ID及所述父节点调用本节点的本调用ID;若本节点是根节点,则不用从父节点接收针对本节点的调用请求上下文。
在本节点中向子节点发送针对子节点的请求上下文。此处针对子节点的请求上下文可包括:调用子节点的请求上下文。
在S11之后,且在S12之前,该方法还包括:本节点根据所述本调用ID及本节点调用子节点的调用地址,生成调用子节点的子调用ID。
在S13中本节点针对子节点的调用地址、本调用ID和请求ID,即存储包含调用地址、本调用ID和请求ID的调用信息。
从这里可以看出,在实现时,一个span分别在上下游节点上对应一个存储对象。这两个相互呼应的span对象,除了存储上述的几个span ID之外,可能还会存储一些时间戳。例如,在A上的那个对象,可能存储了发送请求时间戳和接收结果时间戳;在B1上的那个对象,可能存储了接收请求时间戳和发送结果时间戳。
这个span ID对应的A上的span对象和B1上的span对象,会分别被A和B1两个节点推送到旁路存储系统。该span对象即为前述调用信息的一种。
存储所述调用信息,可包括:
本节点的本地存储所述调用信息;和/或旁路存储所述调用信息。此处的旁路存储所述调用信息为:将所述调用信息发送到本节点之前的专用存储区域进行存储,这种存储方式称之为旁路存储。
在进行旁路存储所述调用信息时,可以采用键值对(Key Value,KV)进行存储。例如,将调用信息中的请求ID作为存储的Key,将请求ID以外的其他信息作为Value存储。
而最终在旁路存储上的存储的span对象,可如图5所示。trace ID为键(key),以span对象列表为值(value)的存储方式。
在应用时,根据提供的trace ID,将对应的span对象列表检索出来,并根据各对象中存储的parent span ID和span ID,恢复出整个调度树。值得注意的是:站在本节点的角度,本节点接收的请求上下文中携带的父节点调用本节点span ID又可以称为本调用ID。本调用ID站在子节点的角度而言,就是父调用(Parent span ID)。
在本公开实施例中,本节点生成子span ID是根据本span ID和本节点调用子节点的地址(即调用地址)生成的。
因此,本节点根据本span ID和本节点的调用地址,生成的子span ID,得到子spanID,因此本节点不用存储子span ID,在需要使用的时候,可以直接根据本span ID和本节点调用子节点的调用地址,得到生成的子span ID。
若采用这种方式生成的子调用ID发送给子节点,而本节点就无需再存储子调用ID,减少了服务调用中链式调用的父节点存储的调用子节点的子调用ID所消耗的存储空间,减少了存储开销,也减少了数据存储冗余。
在一些实施例中,所述子调用ID为:按照预设顺序拼接所述本调用ID和所述调用地址生成的;或者,利用一致性哈希函数处理所述本调用ID和所述调用地址生成的。
在一些实施例中,所述子调用节点的生成可包括:
按照预设顺序拼接所述本调用ID和所述调用地址,生成所述子调用ID。
所述S12可包括:
将调用地址拼接在本调用ID之后,生成子调用ID;
或者,
将调用地址拼接在本调用ID之前,生成子调用ID。
采用这种方式生成的子调用ID实质上就是调用链所包含的调用地址按照从前到后的顺序或者从后到前的顺序,形成的地址链。
在另一个实施例中,所述S12可包括:
利用一致性哈希函数处理所述本调用ID和所述调用地址,得到所述子调用ID。
例如,将本调用ID和调用地址拼接形成字符串,然后将该字符串作为一致性哈希函数的因变量,生成所述子调用ID。如此生成的子调用ID,全调用链具有唯一性且可能比直接拼接得到的子调用ID的长度更短,从而能够进一步降低存储的开销。
图7为站在子节点角度看父节点存储的调用信息,则调用信息中仅有父span ID和调用地址,形成旁路存储的存储链的一种示意图。实质上站在父节点的角度,父节点存储及旁路存储的调用信息中的调用ID都是本调用ID。
在另一个实施例中,所述S12还可包括:
生成一个随机数;
根据所述本调用ID、调用地址及所述随机数,得到所述子调用ID。
例如,拼接本调用ID、调用地址及所述随机数,得到所述子调用ID;或者,利用一致性哈希算法处理本调用ID、调用地址及所述随机数组成的字符串得到所述子调用ID。
在拼接所述本调用ID、调用地址及随机数,可以采用任意顺序拼接,例如,随机数依次位于本调用ID及调用地址之前;或者,随机数依次位于本调用ID及调用地址之后。
图6所示为本公开实施例提供的一种调用链的调用数,在图6中span ID可见是由span ID(即本span ID)、随机数、本节点调用子节点的调用地址组成。
在图6中每个本节点仅存储虚线框内的调用信息,而灰色框内的内容是下发给子节点的请求上下文。
在一些实施例中,所述方法还包括:
压缩所述调用信息;
将压缩后的所述调用信息存储到旁路存储区域,其中,所述旁路存储区域存储的调用信息,用于所述服务调用的调用链路恢复。
此处的调用信息可包括前述的span对象。
为了减少调用信息占用的旁路存储区域的存储开销,在本公开实施例中在进行调用信息的旁路存储之前,会进行调用信息的压缩,如此,压缩后的调用信息相对于压缩前的调用信息,可以减少存储的比特开销。图7所示的一种不同节点的调用信息的存储。图7中所示的addr为调用地址。
在一个实施例中,在调用信息中有些信息可以压缩,有些信息可以不压缩,方便后续的查询匹配。
例如,在压缩所述调用信息时,不压缩所述调用信息中包含的请求ID,如此,在旁路存储到旁路存储区域之后,在不解压的情况下就可以查询某一个请求ID所对应的所有调用信息。
在另一个实施例中,在压缩所述调用信息的过程中,不压缩的信息内容还可包括:本调用ID。
由于本调用ID没有压缩,在没有解压调用信息的情况下,也可以知晓当前调用信息对应的本调用ID及父子节点之前的调用关系。
在一些实施例中,所述压缩所述调用信息,包括:
压缩所述调用信息包含的调用地址。
由于调用信息中包含:本调用ID,而本调用ID是父节点根据自身的本节点的调用ID生成,而任意一个节点的调用ID都是使用调用地址来生成子调用ID,因此会形成调用地址列表。而位于同一个服务平台中的多个节点的IP地址都会有相似性,因此考虑到IP地址的这种相似性,若进行调用地址的压缩,可以大大的降低数据量。因此,在本公开实施例中,压缩调用信息时,压缩的调用信息的调用地址。
在一些实施例中,所述压缩所述调用信息包含的调用地址,包括:
去除所述服务调用的调用链所包含调用地址的相同位并保留所述调用链所包含调用地址的差异位,得到压缩后的所述调用信息。
例如,不同节点的IP地址均为10.x.y.z或172.x.y.z或192.168.x.y,IP全取后面的x.y.z或x.y。
因此,去除调用链所包含调用地址的相同位,例如,10、172或者198.168等相同位,仅保留差异位,例如,前述x.y.z或x.y等,从而可以同样可以减少调用信息的存储开销。
在一些实施例中,所述调用信息还包括:时间戳;其中,所述时间戳包括:调用所述子节点的发送时间戳和所述子节点返回调用结果返回的接收时间戳;
所述压缩所述调用信息,包括:
压缩所述调用信息包含的时间戳。
在本公开实施例中的时间戳可为微秒级别的时间信息。而在一个服务请求的响应过程中,响应涉及的时间的日期、小时、分钟,甚至秒或者毫秒级别的时间值都相同,仅是微秒的时间值的差异。考虑到这种情况,可以进行时间戳的压缩,压缩后可以减少大量的存储开销。
例如,在压缩时间戳时可以采用rar压缩方式或者zip压缩方式。
父节点调用子节点时通过服务请求来实现,所述发送时间戳可为父节点向子节点发送服务请求的时间戳,该服务请求可以携带前述的服务上下文。所述接收时间戳为:子节点基于服务请求返回调用结果的时间戳。
若一个本节点调用S个子节点,则所述时间戳包括:S个时间戳对。一个时间戳对包括:一个发送时间戳和接收时间戳。S可为正整数。若干个时间戳对作为本节点调用子节点的时间戳,构成时间戳序列。时间戳序列可作为调用信息的组成部分。
在另一个实施例中,所述压缩所述调用信息包含的时间戳,包括:
将所述本节点的多个时间戳中最小值,作为基准时间戳;
确定所述节点的多个时间戳与所述基准时间戳的差值,得到时间差序列,得到压缩后的所述调用信息,其中,压缩后的所述调用信息包括:所输送本节点的基准时间戳及所述时间差序列。
例如,cs_base=min(cs1,cs2,…,csn),cs1,cs2,…,csn均为前述时间戳。min(cs1,cs2,…,csn),即找到多个时间戳中的最小时间戳。
将最小时间戳作为基准时间戳,并cs_base作为基准时间戳。
假设[new_cs1,new_cs2,…,new_csn]为时间差序列,则
[new_cs1,new_cs2,…,new_csn]=[cs1-cs_base,cs2-cs_base,…,csn-cs_base]。
压缩[new_cs1,new_cs2,…,new_csn]。例如,采用Pfordelta等方式进行时间差序列压缩等,可以进一步减少时间戳存储所占用的比特开销。
在一些实施例中,所述方法还包括:
若所述本节点为根节点,生成所述请求ID;
根据所述根节点调用子节点的调用地址,生成所述子调用ID;
存储所述请求ID及所述调用地址;
将所述请求ID和所述子调用ID作为请求上下文下发给所述子节点。
例如,根节点从用户设备接收到的服务请求的序列号,生成所述请求ID。
在生成所述请求ID之后,可根节点将根据自己调用下一级节点的调用地址,生成所述子调用ID。而该子调用ID对于根节点的子节点而言,即为从父节点接收的本调用ID。
如图8所示,本公开实施例还提供一种服务调用的调用数据处理方法,其中,包括:
S21:根据请求ID,从旁路存储区域读取调用信息;
S22:根据父节点的所述调用信息包含的请求ID、本调用ID及调用地址,得到调用子节点的子调用ID;
S23:根据各节点的本调用ID及所述子调用ID,恢复调用链。
在本公开实施例中,需要得到调用链,则可以直接以请求ID为查询索引,查询旁路存储区域,从而读取到各个节点存储的调用信息。
从调用信息中获取出各级节点存储的本调用ID和对子节点进行调用所使用的调用地址。按照子调用ID的生成算法,根据本调用ID及调用地址,恢复出链式调用时的子调用ID。
然后根据各层级节点的子调用ID,可以确定出各级节点之间调用的层级关系,从而结合这种层级关系和调用地址,可以快速恢复出调用链。
在本公开实施例中,各级节点存储的调用信息中及包含本调用ID和本节点调用子节点的调用地址,而不包含子调用ID本身,从而减少了子调用ID存储所占用的存储开销。
以图9所示的调用链的两个调用信息,恢复出子调用ID,并根据调用ID恢复出调用链。
从恢复出的子调用ID可以得到调用链上的如下调用关系:
根节点→2.2.2.2:2
root→3.3.3.3:3
2.2.2.2:2→4.4.4.4:4
2.2.2.2:2→5.5.5.5:5。
在一些实施例中,所述S22可包括:按照预设顺序拼接所述本调用ID和所述调用地址,生成所述子调用ID;或者,利用一致性哈希函数处理所述本调用ID和所述调用地址,得到所述子调用ID。
具体的如何生成子调用ID,可以参见前述实施例中生成子调用ID的对应部分,此处就不再重复了。
在一些实施例中,从所述旁路存储区域读取的所述调用信息为:压缩后的所述调用信息;压缩后的所述调用信息包括:压缩后的调用地址;
所述方法,还包括:
从压缩后的所述调用信息中读取调用地址的差异位,并补齐调用地址的相同位,得到解压后的调用地址。
从旁路存储区域读取的调用信息,可以是未压缩的调用信息,还可以是压缩后的调用信息。
若从旁路存储区域读取的调用信息是压缩后的调用信息,则需要对调用信息进行解压缩。
例如,调用信息中的各层级节点的调用地址被压缩了,按照调用地址的压缩算法,反向处理压缩后的调用地址,就可以得到压缩前的完整的调用地址。例如,在本公开实施例中,根据各节点的IP地址的相同位与差异位组合,就可以得到各级节点调用子节点时的完整调用地址,实现调用信息内调用地址的解压。
在一些实施例中,从所述旁路存储区域读取的所述调用信息为压缩后的所述调用信息;压缩后的所述调用信息包括:压缩后的时间戳;
所述方法,还包括:
从压缩后的所述调用信息中读取基准时间戳和时间差序列;
确定所述时间差序列中各时间差与所述基准时间戳之和,得到解压后的时间戳。
例如,调用信息中的各层级节点的时间戳被压缩了,按照时间戳的压缩算法,反向处理压缩后的时间戳,就可以得到压缩前的完整的时间戳。例如,在本公开实施例中,一个节点的所有时间戳形成的时间戳序列中由最小时间戳,该最小时间戳即为包含在压缩后的调用信息内的基准时间戳,求取基准时间戳与时间差序列中每一个时间差的和,就可以解压并恢复出完整的时间戳。
本实施例提供一种调用信息的处理方法,可包括:
根节点收到一个请求后,根据一定的算法生成trace ID。随机生成一个根节点对应的随机数(seed)。指定span ID为1。将这些信息存储于线程局部存储。
(2)对于任一节点R,它依次将请求发送给了下游S1、S2、…、Sn节点(这里面节点的IP:port允许重复出现),那么在R上生成一个span对象,本文称为新span对象。
(a)新span对象(即本节点的调用信息)存储如下信息:
trace ID:这个值来源于自己的线程局部存储中的trace ID。
seed:这个值来源于自己的线程局部存储seed。
span ID:这个值来源于自己的线程局部存储span ID。
addr:这是个列表,[S1的IP:port,S2的IP:port,…,Sn的IP:port]。
timestamps:这是个列表,对应于addr中每个下游节点的毫秒级的请求发送时间戳和结果接收时间戳(cs,cr),二者用两数组存储:[cs1,cs2,…,csn]和[cr1,cr2,…,crn]。
(b)对于每一个下游节点Si(1<=i<=n),用下面的算法生成其span ID:
Si的子调动ID,即span ID=f(线程局部存储seed,线程局部存储span ID,[S1的IP:port,S2的IP:port,…,Si的IP:port])。
函数f(线程局部存储span ID,[S1的IP:port,S2的IP:port,…,Si的IP:port]),可用来推导各节点的子调用ID。
(c)对于每一个下游节点Si(1<=i<=n),发送如下信息,本文称这份信息为trace上下文:
trace ID:这个值来源于自己的线程局部存储中的trace ID。
span ID:这个值是按(b)算法算出来的Si的span ID。
(3)对于任一非根节点S,它收到来自上游的trace上下文后,做如下工作:
(a)将trace上下文中的trace ID和span ID保存在自己的线程局部存储。
(b)随机生成一个seed,保存在自己的线程局部存储。
(4)各节点将新span对象进行压缩,形成压缩后的新span对象并输出到旁路KV存储。
新span对象压缩方案可如下:
trace ID及seed都不压缩。
parent span ID及addr,可压缩。
对于企业内网,IP地址一般为10.x.y.z或172.x.y.z或192.168.x.y,IP全取后面的x.y.z或x.y,可保留IP地址的差异位。
时间戳(timestamps):
基准时间戳cs_base=min(cs1,cs2,…,csn)
时间差序列[new_cs1,new_cs2,…,new_csn]=[cs1-cs_base,cs2-cs_base,…,csn-cs_base],并将[new_cs1,new_cs2,…,new_csn]按pfordelta压缩。
[new_cr1,new_cr2,…,new_crn]=[cr1-cs1,cr2-cs2,…,crn-csn],并将[new_cr1,new_cr2,…,new_crn]按pfordelta压缩。
根据指定的trace ID,从旁路KV存储中取出压缩后的新span对象集合。此处的新的span对象即为前述的调用信息。
对各个压缩后的新span对象进行解压,形成新span对象集合。
按照前述算法,算出下游各个子节点的span ID,并寻找parent span ID和这个值相等的新span对象,进行父子关联。
本公开实施例的服务请求包括但不限于搜索请求。图13示出了一种搜索请求的所对应的搜索架构示意图。搜索架构的根节点接收到客户端发送的搜索请求(即主请求),该搜索请求被拆分为多个多个子请求。例如,在图13中主请求被拆分成了子请求1、子请求2……到子请求m。
在搜索请求拆分时各子请求也可以进一步拆分为更细的子请求。例如,子请求2被进一步拆分成了子请求2.1、子请求2.2至子请求2.3。
拆分后的每个子请求对应生成一个队列单独计算,之后可以将各队列的计算结果组合得到该搜索关键词的搜索结果。
一个子请求可调度至少一个节点进行响应。
然后将各个子请求所对应的子节点的搜索结构聚合,形成针对搜索请求的搜索响应。
在将个子节点针对自身被调用响应的子节点的搜索结果,都存储到对应的队列中,然后各个子节点对应的队列内的搜索结果都会汇聚到与主请求对应的主队列中,从而得到最终的搜索结果。
如图10所示,本公开实施例提供一种服务调用的调用数据处理装置,包括:
接收模块31,用于从父节点接收针对本节点的请求上下文;所述请求上下文包括:请求标识ID及所述父节点调用本节点的本调用ID;
发送模块32,用于向子节点发送针对所述子节点的请求上下文,其中,针对所述子节点的请求上下文包括:所述请求ID及本节点调用所述子节点的子调用ID;其中,所述子调用ID为:根据所述本调用ID及本节点调用子节点的调用地址生成的;
第一存储模块,用于存储所述请求ID、所述本调用ID及所述调用地址。
在一些实施例中,所述接收模块31、发送模块32和所述第一存储模块33可为程序模块;所述程序模块被执行后,能够接收父节点发送的请求上下文、生成子调用ID及进行调用信息的存储。
在另一些实施例中,所述接收模块31、发送模块32和所述第一存储模块33可为软硬结合模块;所述软硬结合模块包括但不限于可编程阵列。所述可编程阵列包括但不限于现场可编程阵列和复杂可编程阵列。
在还有一些实施例中,所述接收模块31、发送模块32和所述第一存储模块33可为纯硬件模块;所述纯硬件模块包括但不限于专用集成电路。
因此在本公开实施例中,调用ID不再是随机生成的随机数,而是根据本调用ID和本节点调用子节点的调用地址生成,若采用这种方式生成的子调用ID发送给子节点,而本节点就无需再存储子调用ID,减少了服务调用中链式调用的父节点存储的调用子节点的子调用ID所消耗的存储空间,减少了存储开销,也减少了数据存储冗余。
在一些实施例中,所述生成模块32,用于按照预设顺序拼接所述本调用ID和所述调用地址,生成所述子调用ID;或者,利用一致性哈希函数处理所述本调用ID和所述调用地址,得到所述子调用ID。
采用拼接方式或者一致性哈希函数,对本调用ID和调用地址生成子调用ID,具有实现简单的特点。
在一些实施例中,所述装置还包括:
压缩模块,用于压缩所述调用信息;
第二存储模块,用于将压缩后的所述调用信息存储到旁路存储区域,其中,所述旁路存储区域存储的调用信息,用于所述服务调用的调用链路恢复。
在一些实施例中,通过压缩,可以进一步降低调用信息存储所占用的比特。
在一些实施例中,所述压缩模块,具体用于压缩所述调用信息包含的调用地址。
在一些实施例中,所述压缩模块,具体用于去除所述服务调用的调用链所包含调用地址的相同位并保留所述调用链所包含调用地址的差异位,得到压缩后的所述调用信息。
在一些实施例中,所述调用信息还包括:时间戳;其中,所述时间戳包括:调用所述子节点的发送时间戳和所述子节点返回调用结果返回的接收时间戳;
所述压缩模块,用于压缩所述调用信息包含的时间戳。
在一些实施例中,所述压缩模块,具体用于将所述本节点的多个时间戳中最小值,作为基准时间戳;确定所述节点的多个时间戳与所述基准时间戳的差值,得到时间差序列,得到压缩后的所述调用信息,其中,压缩后的所述调用信息包括:所输送本节点的基准时间戳及所述时间差序列。
在一些实施例中,所述生成模块32,还同于若所述本节点为根节点,根据本节点调用子节点的调用地址,生成所述子调用ID;
所述第一存储模块33;存储所述请求ID及所述调用地址;
所述发送模块32,还用于将所述请求ID和所述子调用ID作为请求上下文下发给所述子节点。
如图11所示,本公开实施例提一种服务调用的跟踪数据处理装置,包括:
读取模块41,用于根据请求ID,从旁路存储区域读取调用信息;
处理模块42,用于根据父节点的所述调用信息包含的请求ID、本调用ID及调用地址,得到调用子节点的子调用ID;
恢复模块43,用于根据各节点的本调用ID及所述子调用ID,恢复调用链。
在一些实施例中,所述读取模块41、处理模块42和所述恢复模块43可为程序模块;所述程序模块被执行后,能够从旁路存储区域读取到调用信息,并回复出子调用ID,通过。
在另一些实施例中,所述读取模块41、处理模块42和所述恢复模块43可为软硬结合模块;所述软硬结合模块包括但不限于可编程阵列。所述可编程阵列包括但不限于现场可编程阵列和复杂可编程阵列。
在还有一些实施例中,所述读取模块41、处理模块42和所述恢复模块43可为纯硬件模块;所述纯硬件模块包括但不限于专用集成电路。
在一些实施例中,所述处理模块42,用于按照预设顺序拼接所述本调用ID和所述调用地址,生成所述子调用ID;或者,利用一致性哈希函数处理所述本调用ID和所述调用地址,得到所述子调用ID。
通过拼接方式和一致性哈希函数,可以依据本调用ID和调用地址,简便得到子调用ID。
由于旁路存储区域的调用信息是压缩后的调用信息,从而具有占用旁路存储区域的开销小的特点。
故在一些实施例中,从所述旁路存储区域读取的所述调用信息为:压缩后的所述调用信息;压缩后的所述调用信息包括:压缩后的调用地址;
所述装置,还包括:
第一解压模块,用于从压缩后的所述调用信息中读取调用地址的差异位,并补齐调用地址的相同位,得到解压后的调用地址。
在另一些实施例中,从所述旁路存储区域读取的所述调用信息为压缩后的所述调用信息;压缩后的所述调用信息包括:压缩后的时间戳;
所述装置,还包括:
第二解压模块,用于从压缩后的所述调用信息中读取基准时间戳和时间差序列;并确定所述时间差序列中各时间差与所述基准时间戳之和,得到解压后的时间戳。
本公开实施例提供一种电子设备,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述任意技术方案提供的服务调用的调用数据处理方法。根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质。该可读存储介质存储有计算机指令;该计算机指令被计算机执行后,能够前述任意技术方案提供的服务调用的调用数据处理方法,例如,执行如图1及图8所示服务调用的调用数据处理方法的至少其中之一。
如图12所示,是根据本公开实施例服务调用的调用数据处理方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图12所示,该电子设备包括:一个或多个处理器71、存储器72,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图12中以一个处理器71为例。
存储器72即为本公开所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本公开所提供的服务调用的调用数据处理方法。本公开的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本公开所提供的服务调用的调用数据处理方法。
存储器72作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本公开实施例中的服务调用的调用数据处理方法对应的程序指令/模块(例如,附图10所示的接收模块、发送模块以及第一存储模块;或者,如附图11所示的读取模块、处理模块以及恢复模块)。处理器71通过运行存储在存储器72中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的服务调用的调用数据处理方法。
存储器72可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服务调用的调用数据处理方法的电子设备的使用所创建的数据等。此外,存储器72可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器72可选包括相对于处理器71远程设置的存储器,这些远程存储器可以通过网络连接至对媒体信息处理方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
服务调用的调用数据处理方法的电子设备还可以包括:输入装置73和输出装置74。处理器71、存储器72、输入装置73和输出装置74可以通过总线或者其他方式连接,图7中以通过总线连接为例。
输入装置73可接收输入的数字或字符信息,以及产生与服务调用的调用数据处理方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置74可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语机器可读介质和计算机可读介质指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语机器可读信号指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (20)
1.一种服务调用的调用数据处理方法,包括:
从父节点接收针对本节点的请求上下文;所述请求上下文包括:请求标识ID及所述父节点调用本节点的本调用ID;
向子节点发送针对所述子节点的请求上下文,其中,针对所述子节点的请求上下文包括:所述请求ID及本节点调用所述子节点的子调用ID;其中,所述子调用ID为:根据所述本调用ID及本节点调用子节点的调用地址,生成的;
存储所述请求ID、所述本调用ID及所述调用地址。
2.根据权利要求1所述的方法,其中,所述子调用ID为:
按照预设顺序拼接所述本调用ID和所述调用地址生成的;
或者,
利用一致性哈希函数处理所述本调用ID和所述调用地址生成的。
3.根据权利要求1或2所述的方法,其中,所述方法还包括:
压缩包含所述请求ID、所述本调用ID及所述调用地址的调用信息;
将压缩后的所述调用信息存储到旁路存储区域,其中,所述旁路存储区域存储的调用信息,用于所述服务调用的调用链路恢复。
4.根据权利要求3所述的方法,其中,压缩包含所述请求ID、所述本调用ID及所述调用地址的调用信息,包括:
去除所述服务调用的调用链所包含调用地址的相同位并保留所述调用链所包含调用地址的差异位,得到压缩后的所述调用信息。
5.根据权利要求3所述的方法,其中,所述调用信息还包括:时间戳;其中,所述时间戳包括:调用所述子节点的发送时间戳和所述子节点返回调用结果返回的接收时间戳;
所述压缩包含所述请求ID、所述本调用ID及所述调用地址的调用信息,包括:
将所述本节点的多个时间戳中最小值,作为基准时间戳;
确定所述节点的多个时间戳与所述基准时间戳的差值,得到时间差序列,得到压缩后的所述调用信息,其中,压缩后的所述调用信息包括:所输送本节点的基准时间戳及所述时间差序列。
6.一种服务调用的调用数据处理方法,其中,包括:
根据请求ID,从旁路存储区域读取调用信息;
根据父节点的所述调用信息包含的请求ID、本调用ID及调用地址,得到调用子节点的子调用ID;
根据各节点的本调用ID及所述子调用ID,恢复调用链。
7.根据权利要求6所述的方法,其中,所述根据父节点的所述调用信息包含的请求ID、本调用ID及调用地址,得到调用子节点的子调用ID,包括:
按照预设顺序拼接所述本调用ID和所述调用地址,生成所述子调用ID;
或者,
利用一致性哈希函数处理所述本调用ID和所述调用地址,得到所述子调用ID。
8.根据权利要求6或7所述方法,其中,从所述旁路存储区域读取的所述调用信息为:压缩后的所述调用信息;压缩后的所述调用信息包括:压缩后的调用地址;
所述方法,还包括:
从压缩后的所述调用信息中读取调用地址的差异位,并补齐调用地址的相同位,得到解压后的调用地址。
9.根据权利要求6或7所述的方法,其中,从所述旁路存储区域读取的所述调用信息为压缩后的所述调用信息;压缩后的所述调用信息包括:压缩后的时间戳;
所述方法,还包括:
从压缩后的所述调用信息中读取基准时间戳和时间差序列;
确定所述时间差序列中各时间差与所述基准时间戳之和,得到解压后的时间戳。
10.一种服务调用的跟踪数据处理装置,包括:
接收模块,用于从父节点接收针对本节点的请求上下文;所述请求上下文包括:请求标识ID及所述父节点调用本节点的本调用ID;
发送模块,用于向子节点发送针对所述子节点的请求上下文,其中,针对所述子节点的请求上下文包括:所述请求ID及本节点调用所述子节点的子调用ID;其中,所述子调用ID为:根据所述本调用ID及本节点调用子节点的调用地址生成的;
第一存储模块,用于存储所述请求ID、所述本调用ID及所述调用地址。
11.根据权利要求10所述的装置,其中,所述子调用ID为:按照预设顺序拼接所述本调用ID和所述调用地址生成的;或者,利用一致性哈希函数处理所述本调用ID和所述调用地址生成的。
12.根据权利要求10或11所述的装置,其中,所述装置还包括:
压缩模块,用于压缩包含所述请求ID、所述本调用ID及所述调用地址的调用信息;
第二存储模块,用于将压缩后的所述调用信息存储到旁路存储区域,其中,所述旁路存储区域存储的调用信息,用于所述服务调用的调用链路恢复。
13.根据权利要求12所述的装置,其中,所述压缩模块,具体用于去除所述服务调用的调用链所包含调用地址的相同位并保留所述调用链所包含调用地址的差异位,得到压缩后的所述调用信息。
14.根据权利要求12所述的装置,其中,所述调用信息还包括:时间戳;其中,所述时间戳包括:调用所述子节点的发送时间戳和所述子节点返回调用结果返回的接收时间戳;
所述压缩模块,具体用于将所述本节点的多个时间戳中最小值,作为基准时间戳;确定所述节点的多个时间戳与所述基准时间戳的差值,得到时间差序列,得到压缩后的所述调用信息,其中,压缩后的所述调用信息包括:所输送本节点的基准时间戳及所述时间差序列。
15.一种服务调用的跟踪数据处理装置,包括:
读取模块,用于根据请求ID,从旁路存储区域读取调用信息;
处理模块,用于根据父节点的所述调用信息包含的请求ID、本调用ID及调用地址,得到调用子节点的子调用ID;
恢复模块,用于根据各节点的本调用ID及所述子调用ID,恢复调用链。
16.根据权利要求15所述的装置,其中,所述处理模块,用于按照预设顺序拼接所述本调用ID和所述调用地址,生成所述子调用ID;或者,利用一致性哈希函数处理所述本调用ID和所述调用地址,得到所述子调用ID。
17.根据权利要求15或16所述装置,其中,从所述旁路存储区域读取的所述调用信息为:压缩后的所述调用信息;压缩后的所述调用信息包括:压缩后的调用地址;
所述装置,还包括:
第一解压模块,用于从压缩后的所述调用信息中读取调用地址的差异位,并补齐调用地址的相同位,得到解压后的调用地址。
18.根据权利要求15或16所述的装置,其中,从所述旁路存储区域读取的所述调用信息为压缩后的所述调用信息;压缩后的所述调用信息包括:压缩后的时间戳;
所述装置,还包括:
第二解压模块,用于从压缩后的所述调用信息中读取基准时间戳和时间差序列;并确定所述时间差序列中各时间差与所述基准时间戳之和,得到解压后的时间戳。
19.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5或6-9中任一项所述的方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-5或6-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010750986.XA CN111897604B (zh) | 2020-07-30 | 2020-07-30 | 服务调用的调用数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010750986.XA CN111897604B (zh) | 2020-07-30 | 2020-07-30 | 服务调用的调用数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111897604A true CN111897604A (zh) | 2020-11-06 |
CN111897604B CN111897604B (zh) | 2023-08-11 |
Family
ID=73183407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010750986.XA Active CN111897604B (zh) | 2020-07-30 | 2020-07-30 | 服务调用的调用数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111897604B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125818A (zh) * | 2021-11-23 | 2022-03-01 | 北京字节跳动网络技术有限公司 | 业务参数传输方法、装置、系统、电子设备和存储介质 |
CN114139039A (zh) * | 2021-11-30 | 2022-03-04 | 百度在线网络技术(北京)有限公司 | 服务稳定性确定方法、装置、设备以及存储介质 |
CN115499338A (zh) * | 2022-11-15 | 2022-12-20 | 阿里云计算有限公司 | 数据处理方法、设备、介质及云网络观测系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070011349A1 (en) * | 2005-06-09 | 2007-01-11 | Lockheed Martin Corporation | Information routing in a distributed environment |
CN106790718A (zh) * | 2017-03-16 | 2017-05-31 | 北京搜狐新媒体信息技术有限公司 | 服务调用链路分析方法及系统 |
CN107181675A (zh) * | 2017-06-20 | 2017-09-19 | 北京奇艺世纪科技有限公司 | 服务调用方法及装置 |
CN108600045A (zh) * | 2018-04-05 | 2018-09-28 | 厦门快商通信息技术有限公司 | 一种服务链路监控方法及装置 |
CN110730246A (zh) * | 2019-10-23 | 2020-01-24 | 家乡互动(厦门)网络科技有限公司 | 一种微服务架构下的分布式链路跟踪方法 |
-
2020
- 2020-07-30 CN CN202010750986.XA patent/CN111897604B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070011349A1 (en) * | 2005-06-09 | 2007-01-11 | Lockheed Martin Corporation | Information routing in a distributed environment |
CN106790718A (zh) * | 2017-03-16 | 2017-05-31 | 北京搜狐新媒体信息技术有限公司 | 服务调用链路分析方法及系统 |
CN107181675A (zh) * | 2017-06-20 | 2017-09-19 | 北京奇艺世纪科技有限公司 | 服务调用方法及装置 |
CN108600045A (zh) * | 2018-04-05 | 2018-09-28 | 厦门快商通信息技术有限公司 | 一种服务链路监控方法及装置 |
CN110730246A (zh) * | 2019-10-23 | 2020-01-24 | 家乡互动(厦门)网络科技有限公司 | 一种微服务架构下的分布式链路跟踪方法 |
Non-Patent Citations (1)
Title |
---|
MAIKELSONG: ""分布式跟踪系统(二):Zipkin的Span模型"", 《HTTPS://BLOG.CSDN.NET/MAIKELSONG/ARTICLE/DETAILS/80814251》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125818A (zh) * | 2021-11-23 | 2022-03-01 | 北京字节跳动网络技术有限公司 | 业务参数传输方法、装置、系统、电子设备和存储介质 |
CN114125818B (zh) * | 2021-11-23 | 2023-08-22 | 北京字节跳动网络技术有限公司 | 业务参数传输方法、装置、系统、电子设备和存储介质 |
CN114139039A (zh) * | 2021-11-30 | 2022-03-04 | 百度在线网络技术(北京)有限公司 | 服务稳定性确定方法、装置、设备以及存储介质 |
CN114139039B (zh) * | 2021-11-30 | 2022-08-09 | 百度在线网络技术(北京)有限公司 | 服务稳定性确定方法、装置、设备以及存储介质 |
CN115499338A (zh) * | 2022-11-15 | 2022-12-20 | 阿里云计算有限公司 | 数据处理方法、设备、介质及云网络观测系统 |
CN115499338B (zh) * | 2022-11-15 | 2023-09-29 | 阿里云计算有限公司 | 数据处理方法、设备、介质及云网络观测系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111897604B (zh) | 2023-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3754514B1 (en) | Distributed database cluster system, data synchronization method and storage medium | |
CN111897604A (zh) | 服务调用的调用数据处理方法及装置 | |
US20070094659A1 (en) | System and method for recovering from a failure of a virtual machine | |
US11340970B2 (en) | Distributed queueing over a Redis cluster | |
CN111523001B (zh) | 用于存储数据的方法、装置、设备以及存储介质 | |
EP3172682B1 (en) | Distributing and processing streams over one or more networks for on-the-fly schema evolution | |
CN113051446A (zh) | 拓扑关系查询方法、装置、电子设备和介质 | |
CN110619002A (zh) | 数据处理方法、装置及存储介质 | |
US10423625B2 (en) | Exactly-once semantics for streaming analytics in non-idempotent output operations | |
CN111694857A (zh) | 存储资源数据的方法、装置、电子设备及计算机可读介质 | |
CN113687964B (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
CN111177476A (zh) | 数据查询方法、装置、电子设备及可读存储介质 | |
CN110928851A (zh) | 处理日志信息的方法、装置、设备及存储介质 | |
US11178197B2 (en) | Idempotent processing of data streams | |
US10331484B2 (en) | Distributed data platform resource allocator | |
CN113760847A (zh) | 日志数据处理方法、装置、设备及存储介质 | |
CN112069137A (zh) | 生成信息的方法、装置、电子设备及计算机可读存储介质 | |
CN111008095A (zh) | 一种面向边缘云的状态快照生成和恢复方法 | |
CN115269719A (zh) | 数据同步方法及装置 | |
CN114817344A (zh) | 一种数据获取方法和装置 | |
CN113760469A (zh) | 分布式计算的方法和装置 | |
CN110768855B (zh) | 链路化性能测试的方法和装置 | |
CN111459981A (zh) | 查询任务的处理方法、装置、服务器及系统 | |
CN112437152B (zh) | 崩溃处理方法、装置、电子设备和存储介质 | |
CN113760836B (zh) | 一种宽表计算方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |