CN115567607A - 调用链路的处理方法、装置、***、电子设备及存储介质 - Google Patents

调用链路的处理方法、装置、***、电子设备及存储介质 Download PDF

Info

Publication number
CN115567607A
CN115567607A CN202211193485.1A CN202211193485A CN115567607A CN 115567607 A CN115567607 A CN 115567607A CN 202211193485 A CN202211193485 A CN 202211193485A CN 115567607 A CN115567607 A CN 115567607A
Authority
CN
China
Prior art keywords
identifier
link
identification
node
calling
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.)
Pending
Application number
CN202211193485.1A
Other languages
English (en)
Inventor
马闯
孟海峰
李云天
米书杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of CN115567607A publication Critical patent/CN115567607A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种调用链路的处理方法、装置、***、电子设备及存储介质,涉及数据处理技术领域,尤其涉及服务调用链路分析领域。具体实施方案为:获取待处理访问请求;生成待处理访问请求的调用链路的目标链路标识;目标链路标识中包含第一节点标识和追踪标识;调用链路中包括多个服务节点,第一节点标识用于标记调用链路的起始服务节点;追踪标识用于从任一服务节点传递给被调用服务节点、且追踪标识用于解析调用链路中各服务节点之间的调用关系。基于第一节点标识能够快速定位调用链路的起始服务节点。通过追踪标识可解析出整条调用链路的调用关系。由此,该方法可以快速准确的跟踪分析调用链路。

Description

调用链路的处理方法、装置、***、电子设备及存储介质
技术领域
本公开涉及数据处理技术领域,尤其涉及服务调用链路分析领域。
背景技术
微服务发展迅猛的今天,松耦合的设计层出不穷,为简化服务带来了极大的便利。开发人员只需要关心自己模块的版本迭代上线,业务方向分工明确。但随着整个业务架构的扩大,服务数量在近两年出现了***性的增长。
一次请求往往涉及多次服务间调用,这些服务可能是由不同团队负责开发的,还可能是使用不同的语言编写,也可能涉及到不同的服务器。由于以上种种原因,各服务间的调用关系错综复杂。而如果能快速的理清服务间的调用关系,就可以提升对问题的定位的速度与准确性。
发明内容
本公开提供了一种用于调用链路的处理方法、装置、***、设备以及存储介质。
根据本公开的一方面,提供了一种调用链路的处理方法,包括:
获取待处理访问请求;
生成待处理访问请求的调用链路的目标链路标识;
其中,目标链路标识用于解析调用链路,目标链路标识中包含第一节点标识和追踪标识;调用链路中包括多个服务节点,第一节点标识用于标记多个服务节点中的起始服务节点;调用链路中、任一服务节点调用被调用服务节点的情况下,追踪标识用于从任一服务节点传递给被调用服务节点,且追踪标识用于解析调用链路中各服务节点之间的调用关系。
根据本公开的另一方面,提供了一种调用链路的处理方法,包括:
获取目标链路标识;
从目标链路标识中解析出第一节点标识和追踪标识;
基于追踪标识解析调用链路中各服务节点之间的调用关系;
生成以第一节点标识对应的服务节点为起始服务节点,且包含各服务节点之间的调用关系的调用链路。
根据本公开的另一方面,提供了一种调用链路的处理方法,包括:
获取待处理访问请求;
生成待处理访问请求的调用链路的目标链路标识;其中,目标链路标识中包含第一节点标识和追踪标识;调用链路中、任一服务节点调用被调用服务节点的情况下,追踪标识用于从任一服务节点传递给被调用服务节点;
获取目标链路标识;
从目标链路标识中解析出第一节点标识和追踪标识;
基于追踪标识解析调用链路中各服务节点之间的调用关系;
生成以第一节点标识对应的服务节点为起始服务节点,且包含各服务节点之间的调用关系的调用链路。
根据本公开的另一方面,提供了一种调用链路的处理装置,包括:
第一获取模块,用于获取待处理访问请求;
第一生成模块,用于生成待处理访问请求的调用链路的目标链路标识;
其中,目标链路标识用于解析调用链路,目标链路标识中包含第一节点标识和追踪标识;调用链路中包括多个服务节点,第一节点标识用于标记多个服务节点中的起始服务节点;调用链路中、任一服务节点调用被调用服务节点的情况下,追踪标识用于从任一服务节点传递给被调用服务节点,且追踪标识用于追踪解析调用链路中各服务节点之间的调用关系。
根据本公开的另一方面,提供了一种调用链路的处理装置,包括:
第二获取模块,用于获取目标链路标识;
第一解析模块,用于从目标链路标识中解析出第一节点标识和追踪标识;
第二解析模块,用于基于追踪标识解析调用链路中各服务节点之间的调用关系;
第二生成模块,用于生成以第一节点标识对应的服务节点为起始服务节点,且包含各服务节点之间的调用关系的调用链路。
根据本公开的另一方面,提供了一种调用链路的处理装置,包括:
第三获取模块,用于获取待处理访问请求;
第三生成模块,用于生成待处理访问请求的调用链路的目标链路标识;其中,目标链路标识中包含第一节点标识和追踪标识;调用链路中、任一服务节点调用被调用服务节点的情况下,追踪标识用于从任一服务节点传递给被调用服务节点;
第四获取模块,用于获取目标链路标识;
第三解析模块,用于从目标链路标识中解析出第一节点标识和追踪标识;
第四解析模块,用于基于追踪标识解析调用链路中各服务节点之间的调用关系;第四生成模块,用于生成以第一节点标识对应的服务节点为起始服务节点,且包含各服务节点之间的调用关系的调用链路。
根据本公开的另一方面,提供了一种调用链路的处理***,包括:
网关,用于执行本公开中第一方面的方法;
链路解析服务器,用于执行本公开中第二方面的方法。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开中上述第一方面和/或第二方面的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行根据本公开中上述第一方面和/或第二方面的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据本公开中上述第一方面和/或第二方面的方法。
本实施例提供的方案,通过目标链路标识及其包含的第一节点标识可以快速得到一条调用链路。基于第一节点标识能够快速定位调用链路的起始服务节点。通过追踪标识可解析出整条调用链路的调用关系。由此,该方法可以快速准确的得到的调用链路。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开一实施例适用的应用场景示意图;
图2是本公开一实施例提供的调用链路的处理方法的流程示意图;
图3是本公开一实施例提供的一种可能的应用场景示意图;
图4是本公开一实施例提供的一种调用链路拓扑图;
图5是本公开另一实施例提供的调用链路的处理方法的流程示意图;
图6是本公开另一实施例提供的调用链路的处理方法的流程示意图;
图7是本公开另一实施例提供的调用链路的处理方法的流程示意图;
图8是本公开又一实施例提供的调用链路的处理方法的流程示意图;
图9是本公开又一实施例的调用链路的处理方法的流程示意图;
图10是本公开一实施例提供的用于筛选目标链路标识的可视化界面图;
图11是本公开另一实施例提供的调用链路的处理方法的流程示意图;
图12是根据本公开另一实施例提供的应用场景示意图;
图13是根据本公开一实施例提供的调用链路的处理装置的一种组成结构示意图;
图14是根据本公开另一实施例提供的调用链路的处理装置的另一种组成结构示意图;
图15是根据本公开一实施例提供的调用链路的处理装置的一种组成结构示意图;
图16是用来实现本公开实施例的调用链路的处理的方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本公开中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了能够快速定位问题,本公开实施例提供了一种调用链路的追踪方法和解析方法。图1为该解析方法和追踪方法适用的应用场景示意图。在图1中包括:终端101、网关102和内容服务器103。用户通过终端101可访问内容服务器103,从内容服务器103中获取网络内容。例如,用户通过终端101访问内容服务器103提供的网页,用户可点击网页中的链接,由此终端101生成请求给网关102,网关102调用内容服务器103中的相应微服务处理该请求。内容服务器103的微服务在处理该请求时,可能调用其他的服务,可能经过多次的服务调用得到该请求的处理结果,然后将处理结果返回给终端101。
需要说明的是图1仅用于说明本公开实施例,并不对本公开实施例适用的场景进行限定。
由于一个请求的调用链路较长,如何追踪出一条调用链路是业内关心的问题。由此,本公开实施例第一方面实施例提供了一种调用链路的追踪方法,如图2所示,为该方法的流程示意图,该方法适用于如图1所示的网关102,包括:
S201、获取待处理访问请求。
在一些实施例中,图1所示的网络架构可划分为接入层、运行层和调用链路层。其中,网关102位于接入层和运行层、内容服务器103位于运行层和调用链路层。网关102的运行层和服务器的运行层用于实现网关102和服务器之间的交互。以图1为例,用户的请求到达网关102的接入层后,由接入层基于该请求生成对运行层的服务节点的调用请求。其中,调用请求即为步骤S201中的待处理访问请求。需要说明的是,针对客户端发送的一个请求,在网关102的接入层可能生成一个调用请求,也可能生成多个调用请求。生成多个调用请求的情况例如图3所示,终端101显示了网页1,该网页中包括多个连接,以及多个推荐图片。其中链接1用于获取文档,且链接对应的页面2中需要展示链接1对应的文档,还需要展示推荐内容。在用户点击了链接1的情况下,终端101则生成针对网页2的内容获取请求给网关102。网关102的接入层针对这一请求需要调用运行层中的服务节点1来获取文档,还需要调用运行层的服务节点2进行内容推荐。因此网关102生成了分别针对服务节点1和服务节点2的调用请求。
当具有多个调用请求时,每个调用请求可分别作为步骤S201中的待处理访问请求并对其执行本公开实施例提供的调用链路追踪方法。为便于理解,后文将针对一个待处理访问请求进行举例说明,其他待处理访问请求的处理方式相同,本公开实施例不作赘述。
S202、生成待处理访问请求的调用链路的目标链路标识;其中,该目标链路标识中包含第一节点标识和追踪标识;该调用链路中包括多个服务节点,该第一节点标识用于标记该多个服务节点中的起始服务节点,
调用链路中,任一服务节点调用被调用服务节点的情况下,追踪标识用于从任一服务节点传递给被调用服务节点、且追踪标识用于解析调用链路中各服务节点之间的调用关系。
在本公开实施例中,通过第一节点标识能够快速定位出一条调用链路中的起始服务节点,以及通过追踪标识追踪出同一调用链路,由此实现快速定位调用链路,理清服务节点间的调用关系,进而有助于更快速的完成对问题的定位。
例如,如图4所示,展示了调用链路的一种界面示意图。该调用链路中标记有目标链路标识T的服务节点A为调用链路的起始服务节点,表示调用链路中从服务节点A开始处理待访问请求。
再例如,仍以图1为例,在网关102的接入层生成目标链路标识,在调用运行层的服务节点时,网关102的接入层将该目标链路标识中的追踪标识透传给运行层的服务节点。当运行层的服务节点需要调用其他服务节点时,运行层的服务节点将追踪标识传递给被其调用的服务节点。以此类推,实现了同一追踪标识在不同服务节点之间的传递。由此,同一追踪标识将不同服务节点串联起来。
在一些可能的实现方式中,将追踪标识传输给被调用服务节点时,可以将该追踪标识携带在请求头中,传递给被调用服务节点。仍以图1为例,接入层发送网络请求给运行层的内容服务器103的微服务(即一个服务节点)。网关102的接入层可将追踪标识携带在网络请求的请求头中,以将追踪标识传递给运行层的微服务。
在一些可能的实施方式中,每条调用链路均有一个唯一标识该调用链路的目标链路标识,以保证目标链路标识的全局唯一性。如图5所示,可基于以下方式生成待处理访问请求的调用链路的目标链路标识:
S501、将待处理访问请求的时间信息划分为第一部分信息和第二部分信息;其中,时间信息包括待处理访问请求的生成时间和/或发送时间。
S502、基于第一部分信息生成追踪标识。
本公开实施例中,追踪标识总位数大于1,且可采用十进制表示。生成追踪标识的示例如下:
在一些实施例中,可以将分钟、秒数和毫秒作为第一部分信息,将第一部分信息的总毫秒数作为该追踪标识的前N位。例如,时间信息为2022年8月3日14:25:31.145,此时第一部分信息为25:31.145,以毫秒表示得到的总毫秒数是1531145毫秒,则1531145作为该追踪标识的前7位。追踪标识的后M位则由M位计数器从最小值依次增大并赋值,当计数器到达最大值时,再回归最小值。当M=3时,可以做到每60小时一次循环。每次循环仅有十万分之一的概率重复,理论上可以做到100年不重复,故此采用该方式能够生成全局唯一的追踪标识。
需要说明的是,上述方式只是用于说明本公开实例中基于时间信息生成追踪标识的实施方式,本公开实例对生成追踪标识的方法不做具体限定。
S503、基于第二部分信息,追踪标识和第一节点标识,生成目标链路标识。
类似的,本公开实施例目标链路标识包括多位,且可采用十进制表示。
本公开实施例中,时间信息本身带有唯一性,利用时间信息来生成目标链路标识,能够达到尽可能保证目标链路标识的全局唯一。基于第一节点标识生成目标链路标识,使得目标链路标识中携带有调用链路的起点信息,以便于从目标链路标识中解析出第一节点标识,从而达到定位出调用链路的起始服务节点的目的。此外,基于第一部分信息生成追踪标识也使得追踪标识带有全局唯一性,以便于使得调用链路具有唯一的追踪标识,由此保证目标链路标识和调用链路的唯一关联性。
在一些实施例中,为了尽可能压缩目标链路标识的数据量,本公开实施例中,步骤S503中基于第二部分信息、追踪标识和第一节点标识,生成目标链路标识,可实施为如图5所示,包括:
S5031、在第一节点标识包含字符的情况下,将第一节点标识转换为数字标识。
其中,因为多条调用链路可以共用同一个起始服务节点,因此用于标记起始服务节点的第一节点标识不需要做到与调用链路一一对应。但本公开实施例中,第一节点标识可以通过数字化缩短数据量。以第一节点标识为IP地址为例,举例说明将IP地址进行数字化的过程。例如,IP地址为“a.b.c.d”,则数字化后的IP地址为2563*a+2562*b+2561*c+2560*d。由于abcd的范围均为1-255,所以乘以256的不同次方会产生不同的数量级,以此保证生成的数字地址的唯一性。
一方面,如果保留IP地址中的“.”,则会增加目标链路标识的数据量,由此耗费更多的存储资源,在调用链路的数量巨大的情况下,压缩目标链路标识的数据量将节约大量的存储资源。另一方面,如果不保留IP地址中的“.”,则会产生歧义,例如IP地址101.1.101.1和IP地址为10.11.10.11去掉“.”后的数字是一样的,无法确定是哪一个IP地址。由此,需要将带有字符“.”的IP地址的转换为数字地址。
S5032、将第二部分信息、追踪标识和数字标识编译成数字串,得到目标链路标识。
例如,时间信息为2022年8月3日14:25:31.145,第一节点标识对应的IP为1.8.27.64。在三维随机数为123的情况下通过S502所介绍的方法生成的追踪标识为1531145123,通过S5031所介绍的方法生成的数字标识为0017308480。第二部分信息为2022年8月3日14时,由于可以默认年份为当前年份,可以去掉第二部分信息中的年份,第二部分信息中的月日时编译为080314(后文简称时间值),则按照追踪标识、第一节点标识和时间值的方式排列,得到的目标链路标识为:
15311451230017308480080314。
需要说明的是,上述方式只是用于说明本公开实例中将第二部分信息、追踪标识和数字标识编译成数字串,得到目标链路标识的一种实施方式,本公开实例对生成目标链路标识的方法不做具体限定。例如,可以更换追踪标识、第一节点标识和时间值的排列顺序来生成目标链路标识。
综上,通过将第一节点标识进行数字化能够使用较少的存储资源存储目标链路标识,还保证了目标链路标识的唯一性,从而确保目标链路标识与调用链路的唯一关联性。
在一些实施例中,目标链路标识和其对应的调用链路可被集中存储在一个服务器中。但是,将这些数据集中储存,一方面,这些数据量巨大,将会占用大量的服务器资源,另一方面如果要快速解析问题的话,需要在服务器中搜寻并调用数据,处理时间相对较长。因此,为了节约存储资源并实现快速定位问题,在一些可能的实施方式中,可在调用服务节点的情况下,将被调用服务节点的第二节点标识保存在本地实例中。例如,服务节点A调用服务节点B,则服务节点B的第二节点标识保存在服务节点A的本地实例中。
本公开实施例中,将被调用服务节点的第二节点标识保存在本地实例中可以根据第二节点标识了解不同服务节点的调用关系。而将第二节点标识存储在本地实例中,可以避免采用集中存储的方式保存不同服务节点的调用关系,从而节约存储资源。
其中,第二节点标识的保存时长可以根据需求设置。例如,问题出现后,需要小于一天的时间发现有问题存在,就可以把这个保存时长设置成一天,可以灵活的管理本地实例中的第二节点标识的生命周期。由此将第二节点标识暂时保存在实例中,而不是持久化到服务器中,可节约存储资源。
在一些实施例中,第二节点标识为IP地址,使用IP地址能够了解不同服务的调用关系。当同一IP地址的设备中存在多个服务节点的情况下,为了便于准确的区分不同服务节点。本公开实施例中第二节点标识包括被调用服务节点的IP地址和端口号,也即,同一IP地址中不同服务节点对应不同端口号。
在一些实施例中,网关102的接入层调用运行层时,将追踪标识传递给运行层。服务器中的运行层在调用服务节点时,可以将追踪标识传递给被调用服务节点,但任一服务节点基于网络请求调用被调用服务节点时,追踪标识可携带在网络请求的请求头中。在一些实施例中,基于消息队列调用被调用服务节点的情况下,将追踪标识以显式传输的方法传递给被调用服务节点。例如,将消息存储到消息队列中时,可以给消息打标签的形式记录追踪标识,则下游在消费消息的时候,标签中记录的追踪标识将一同传递给下游,由此实现追踪标识的传递。
在一些实施例中,传递追踪标识时,通过以下优先级确定追踪标识:
在目标脚本中查看是否定义有追踪标识;目标脚本中的追踪标识可由用户自行定义,以便于被调用服务节点继承该追踪标识。例如测试时候,可以由测试人员自定义追踪标识,以便于完成测试。
在目标脚本中,没有定义追踪标识的情况下,如果请求头携带追踪标识,将请求头中追踪标识作为传输给下一服务节点的追踪标识;
在上述两个位置均未携带追踪标识的情况下,则生成新的追踪标识作为传输给下一服务节点的追踪标识。
在完成对调用链路的跟踪后,定位问题时,将会对目标链路标识进行解析。
前文叙述了调用链路的追踪方法,基于相同的技术构思,根据本公开第二方面实施例,还提供一种调用链路的解析方法。图6为该方法的流程示意图,包括:
S601、获取目标链路标识。
S602、从目标链路标识中解析出第一节点标识和追踪标识。
S603、基于追踪标识追踪调用链路中各服务节点之间的调用关系。
在一些实施例中,可以使用如下的方法追踪调用链路中各服务节点之间的调用关系:调用链路上各服务节点的日志中均携带相同的追踪标识,通过查找携带该追踪标识的日志,将调用链路上的服务节点全部找出。同时,上一级服务节点在调用下一级服务节点时,上一级服务节点会将下一级服务节点的第二节点标识(如IP地址)保留在上一级服务节点的本地实例中。由此,查看本地实例就可以知道服务节点之间的调用关系。基于此,确定各服务节点之间的调用关系可实施为如图7所示:
S701、获取记录有追踪标识的多个服务节点。
S702、针对每个服务节点,分别从服务节点的本地实例中、获取服务节点调用的被调用服务节点的第二节点标识。
S703、基于各服务节点、以及各服务节点调用的被调用服务节点的第二节点标识,确定调用链路中各服务节点之间的调用关系。
使用在本地实例中存储的第二节点标识,解析得到调用链路不同服务节点的调用关系,相比于从服务器中调用,简化了诸多步骤,有效的减少对时间成本和对服务器资源的使用。同时,直接使用本地实例的资源,也降低了误操作率。
S604、生成以第一节点标识对应的服务节点为起始服务节点,且包含各服务节点之间的调用关系的调用链路。
在本公开实施例中,通过对目标链路标识进行解析,获得第一节点标识和追踪标识,进而得到服务节点间的调用链路。基于追踪标识追踪调用链路,提高了确定调用链路的速度和准确性。该调用链路以第一节点标识对应的服务节点为起始服务节点,提高了定位链路的起始位置的速度和准确性。结合以上两方面,本公开实施例对获取目标调用链路的速度与准确性均有一定提升。
在一些可能的实施方式中从目标链路标识中解析出第一节点标识和追踪标识,如图8所示,可实施为:
S6021、从目标链路标识的第一目标位置,解析出追踪标识。
S6022、从目标链路标识的第二目标位置,解析出数字标识。
本公开实施例中目标链路标识包括多位,且可采用十进制表示。其中第一目标位置和第二目标位置,分别可以包括目标链路标识中的连续多位。例如,第一目标位置包括目标链路标识的前十位,第二目标位置包括目标链路标识的第十一至二十位。目标链路标识的具***数总数,以及第一目标位置和第二目标位置包括的位数总数不作具体限定。且,第一目标位置和第二目标位置在目标链路标识中的位置先后关系也不限定。甚至第一目标位置和第二目标位置可以交叉,例如第一目标位置的首位为目标链路标识的第1位、第二目标位置的首位为目标链路标识的第2位、第一目标位置的第2位为目标链路标识的第3位,以此类推。
S6023、对数字标识进行反编译,得到第一节点标识。
本公开实施例中,能够基于目标链路标识中不同位置解析出追踪标识和数字标识,从而还原出第一节点标识。其中,数字标识能够以较少的数据量标识第一节点标识,节约了存储目标链路标识的存储资源。
时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据,是日志分析的重要信息。通过时间戳可以实现时间信息的跨平台转换。在一些可能的实施方式中,可以解析出时间信息,进而生成时间戳,如图9所示,包括:
S901、从追踪标识中解析出时间信息的第一部分信息;时间信息为待处理访问请求的生成时间或发送时间。
S902、从目标链路标识的第三目标位置,解析出时间信息的第二部分信息。
S903、基于第一部分信息和第二部分信息生成时间信息的时间戳。
其中,通过第一部分信息和第二部分信息生成时间信息,再利用时间信息生成时间戳。下面介绍一种基于Java语言生成时间戳的方式:vartimestamp=new Date().getTime();其中,Date和Time是预设的日期和时间,在本实施例中为时间信息。需要说明的是,通过其他语言也可利用时间信息生成时间戳,在此不做赘述。
在追踪标识中可以解析出时间信息并获得时间戳,一方面在获取调用链路时可以针对时间来进行筛选,降低工作量,另一方面也不需要为每个调用链路专门生成和存储时间戳,本公开实施例可复用目标链路标识得到时间戳,也节约了服务器的资源。
为便于理解,下面对如何解析出追踪标识、第一节点标识和时间戳进行举例说明。例如目标链路标识为15311451230017308480080314,将第1-10位作为第一目标位置,可以解析出追踪标识为1531145123,对追踪标识进行反编译,提取其前7位数1531145,即得到一个用毫秒总数表示的时长。将时长转化为分钟、秒、毫秒的格式,由此得到第一部分信息,所得第一部分信息为25:31.145。将目标链路标识中第11-20位作为第二目标位置,可以解析出数字标识为0017308480,对数字标识进行反编译得到第一节点标识。具体反编译过程为:先用数字标识0017308480除以2563,商为1;再用余数除以2562,商为8,再用除以2562所得余数除以2561,得到商为27,余数为64。将这些结果依序拼接起来,得到第一节点标识为1.8.27.64;将第21-26位作为第三目标位置,由于默认年份为当前年,由此可以解析出第二部分信息为2022年8月3日14时。结合第一部分信息与第二部分信息,可以得到时间信息为2022年8月3日14:25:31.145,进而可以得到时间戳。
在一些实施例中,还提供了检索目标链路标识的方式,可实施为:基于目标链路标识筛选条件,筛选出至少一个目标链路标识,得到目标链路标识集;从目标链路标识集中选择出目标链路标识。
其中,所使用的目标链路标识筛选条件包括以下至少一种:接入层类型、地理范围、状态码、域名和IP地址等。用于筛选的页面如图10所示,用户可通过可视化界面选择筛选条件。其中,接入层可包括router(路由)和inrouter(路由)。本公开实施例中目标链路标识用于指示启动的是网关102的router还是inrouter。接入层类型指启动的是router还是inrouter;地理范围(即图10中地域)可以根据实际需求定义,例如地理范围用于限定网关102所在的地理范围;状态码调用服务节点时,由服务器响应状态决定的信息。例如2xx表示请求已成功被服务器接收,3xx代表需要采取进一步的操作才能完成请求,4xx代表请求出现错误,而5xx则代表服务器出现了错误;域名则是请求发出时当前网页的域名,IP地址则是起始服务节点的IP地址。图10中,时间选项用于限制筛选的时间范围,例如筛选近1小时内产生的目标链路标识。本公开实施例中,各服务节点的日志可按小时分割,即每小时得到一份日志。由此,在筛选时候,可便于按时间范围从日志冲筛选出目标链路标识。
多样的筛选条件可以准确的检索需要的目标链路标识,提高定位问题的效率。
在一些可能的实施方式中,可基于目标链路标识筛选条件,从指定位置中筛选出至少一个目标链路标识。该指定位置包括以下中的至少一种:日志、上报的错误事件、浏览器的控制台中记录的请求头等。其中,每次服务调用都会将这次调用记录在日志中,而服务调用过程中一旦发生错误就会生成错误事件,因为可从错误事件中筛选目标链路标识。在多个位置中筛选,可以提高筛选出目标节点标识的可能性,提高定位问题的效率。
综上,使用通过条件筛选得到目标链路标识,基本上可以在问题出现后,尽可能确保能够明确问题所在调用链路。无需对相关服务的全部调用链路进行排查,极大的提升对问题排查的效率。
综上,基于本公开实施例可将生成的调用链路在界面中展示出来。如图4所示的一条调用链路。选择其中任一个服务节点后,会展示服务节点的详情。该详情例如包括:服务节点名称;服务节点类型;服务端地址;该服务节点属于运行层还是接入层等。例如在图4中,选择服务节点D后,展示了服务节点D的相关详情内容。
此外,本公开实施例中同一界面中可展示多条调用链路。为了便于观察同一条调用链路,在选择目标调用链路的情况下,可在界面中隐藏其他调用链路。如果调用链路中有发生致命错误的服务节点,或者有产生警告信息的节点,将这类关键服务节点可以不同的颜色进行标记。如图4所示,服务节点C为发生致命错误的服务节点,服务节点B为产生警告的服务节点。
基于相同的技术构思,根据本公开实施例的第三方面,还提供了一种调用链路的处理方法,如图11所示,包括:
S1101、获取待处理访问请求。
S1102、生成待处理访问请求的调用链路的目标链路标识;其中,目标链路标识中包含第一节点标识和追踪标识;调用链路中、任一服务节点调用被调用服务节点的情况下,追踪标识用于从任一服务节点传递给被调用服务节点。
S1103、获取目标链路标识。
S1104、从目标链路标识中解析出第一节点标识和追踪标识。
S1105、基于追踪标识解析调用链路中各服务节点之间的调用关系。
S1106、生成以第一节点标识对应的服务节点为起始服务节点,且包含各服务节点之间的调用关系的调用链路。
综上,本公开实施例中,基于目标链路标识、追踪标识可串联起一整条调用链路。通过对目标链路标识进行解析,获得第一节点标识和追踪标识,进而得到服务节点间的调用链路。基于追踪标识追踪调用链路,提高了确定调用链路的速度和准确性。该调用链路以第一节点标识对应的服务节点为起始服务节点,提高了定位链路的起始位置的速度和准确性。结合以上两方面,本公开实施例对获取目标调用链路的速度与准确性均有一定提升。
在一些实施例中,生成待处理访问请求的调用链路的目标链路标识,包括:
将待处理访问请求的时间信息划分为第一部分信息和第二部分信息;
基于第一部分信息生成追踪标识;
基于第二部分信息、追踪标识和第一节点标识,生成目标链路标识。
在一些实施例中,基于第二部分信息、追踪标识和第一节点标识,生成目标链路标识,包括:
在第一节点标识包含字符的情况下,将第一节点标识编译为数字标识;
将第二部分信息、追踪标识和数字标识编译成数字串,得到目标链路标识。
在一些实施例中,从目标链路标识中解析出第一节点标识和追踪标识,包括:
从目标链路标识的第一目标位置,解析出追踪标识;
从目标链路标识的第二目标位置,解析出数字标识;
对数字标识进行反编译,得到第一节点标识。
在一些实施例中,该方法还包括:
从追踪标识中解析出时间信息的第一部分信息;
从目标链路标识的第三目标位置,解析出时间信息的第二部分信息;
基于第一部分信息和第二部分信息生成时间信息的时间戳。
在一些实施例中,基于追踪标识解析调用链路中各服务节点之间的调用关系,包括:
获取记录有追踪标识的多个服务节点;
针对每个服务节点,分别从服务节点的本地实例中、获取服务节点调用的被调用服务节点的第二节点标识;
基于各服务节点以及各被调用服务节点的第二节点标识,确定调用关系。
在一些实施例中,获取目标链路标识,包括:
基于目标链路标识筛选条件,筛选出至少一个目标链路标识,得到目标链路标识集;
从目标链路标识集中选择出目标链路标识。
在一些实施例中,基于目标链路标识筛选条件,筛选出至少一个目标链路标识,包括:
基于目标链路标识筛选条件,从指定信息中筛选出至少一个目标链路标识;
指定信息包括以下至少一种:日志、上报的错误事件、浏览器的控制台中记录的请求头;
筛选条件包括以下至少一种:
接入层类型、地理范围、状态码、域名和IP地址。
该方法实施例中各步骤示例的描述,可以参见上述第一方面和第二方面方法实施例中对应步骤的相关描述,在此不再赘述。
基于相同的技术构思,本公开实施例还提供一种调用链路的处理***。该***中包括网关、内容服务器和链路解析服务器,其中:
网关,可执行本公开实施例中第一方面实施例中的方法,例如获取待处理访问请求;生成待处理访问请求的调用链路的目标链路标识;其中,目标链路标识中包含第一节点标识和追踪标识;在调用内容服务器的服务节点的情况下,将追踪标识传递给内容服务器的服务节点;
内容服务器,用于在调用链路中、任一服务节点调用被调用服务节点的情况下,将追踪标识从任一服务节点传递给被调用服务节点;
链路解析服务器,可执行本公开实施例中第二方面的方法,如获取目标链路标识;从目标链路标识中解析出第一节点标识和追踪标识;基于追踪标识解析调用链路中各服务节点之间的调用关系;生成以第一节点标识对应的服务节点为起始服务节点,且包含各服务节点之间的调用关系的调用链路。
其中,需要说明的是内容服务器中任一服务节点在调用被调用服务节点时,该任一服务节点可将被调用服务节点的第二节点标识保存在本地实例中。
为便于***理解本公开实施例提供的调用链路的处理方法,下面结合图12所示的应用场景示意图对此进行说明。在图12中,包括终端101、网关102外,内容服务器(由图12中服务节点A、服务节点B和服务节点C来表示)、链路解析服务器104。用户在终端101发出的请求1,在网关102生成调用请求2,以此调用服务节点A。网关102生成调用请求2的目标链路标识a,其中包含追踪标识b和第一节点标识c。网关102基于调用请求2调用服务节点A,同时将目标链路标识a中的追踪标识b通过http请求传递给服务节点A。例如,可将追踪标识携带在http请求的请求头中,将该http请求作为调用服务节点A的请求发送给服务节点A。由此,服务节点A从该http请求的请求头中能解析出追踪标识b。
服务节点A在调用下一级的服务节点B和服务节点C时,也会将追踪标识b传递给服务节点B和服务节点C,也可以通过http请求头传递追踪标识b。以此类推,追踪标识b在整条调用链路L中由上一服务节点传递给下一服务节点。追踪标识b串联起一整条调用链路L。
需要说明的是,不同服务节点可以位于同一服务器中也可以位于不同服务中。例如一个微服务为一个服务节点,同一服务器可提供多个微服务。在这多个微服务之间存在调用关系的情况下,那么追踪标识将在同一服务器的不同微服务之间传递。
在基于消息队列调用下一服务节点时,该下一服务节点和上一服务节点之间不存在http请求,那么可以通过消息队列将追踪标识b显式的传递给下一服务节点。例如,在服务节点A通过消息队列调用服务节点B时,服务节点A将需要服务节点B处理的任务S存储到消息队列中,并可以将建立追踪标识b与该任务S的关联关系。服务节点B在从消息队列中获取任务S时,可同时获取到任务S关联的追踪标识b。由此实现将追踪标识b显式的传递给服务节点B。
在任一服务节点需要调用被调用服务节点时,均会保存被调用服务节点的第二节点标识到本地实例中。如图12所示,当网关102调用服务节点A时,将服务节点A的节点标识保存在本地实例中。服务节点A调用服务节点B时,服务节点A将服务节点B的节点标识保存在服务节点A的本地实例中,以此类推。为了便于节约存储资源,本公开实施例中各服务节点的节点标识可采用IP+端口号的方式表示。也即,同一服务器中提供多个服务节点时,每个服务节点可采用端口号来区分。
在需要解析这条调用链路时,链路解析服务器104,先获取目标链路标识a,再对目标链路标识a进行解析,从而得到追踪标识b和第一节点标识c。基于第一节点标识c找出起始服务节点网关102。其中,网关中包括router(路由)和inrouter(另一种路由),本公开实施例中可统一采用inrouter作为起始服务节点。
基于追踪标识解析调用链路中各服务节点之间的调用关系,从而得出调用链路L。例如,从目标链路标识a中解析出追踪标识b。然后获取具有追踪标识b的所有服务节点,如获得图12中的服务节点A、服务节点B和服务节点C。为了明确服务节点之间的调用关系,可以查看各服务节点的本地实例中存储的被调用服务节点的节点标识。例如在inrouter中可查询到服务节点A的节点标识,由此确定inrouter调用了服务节点A。在服务节点A的本地实例中查询到服务节点B的节点标识和服务节点C的节点标识,由此可确定服务节点A调用了服务节点B和服务节点C。以此类推,可解析出一整条调用链路L上不同服务节点之间的调用关系,从而得到调用链路L。
得到调用链路L之后,可生成如图4所示的调用链路拓扑图。该调用链路拓扑图中,会显示起始服务节点,并显示整条调用链路L中不同服务节点之间的调用关系。
此外,为了得到调用请求2的时间戳这一重要信息。本公开实施例中网关102在生成目标链路标识时,获取调用请求2的时间信息,例如发送时间。然后将时间信息划分为第一部分信息和第二部分信息。其中第一部分信息为分秒,第二部分信息为月、日和时。可默认年份为当前年份。然后基于第一部分信息生成追踪标识;基于第二部分信息、追踪标识和第一节点标识,生成目标链路标识。在解析时间戳时,从追踪标识中解析出时间信息的第一部分信息(如分秒),并从目标链路标识的第三目标位置解析出时间信息的第二部分信息(如月、日和时),默认年份为当前年份,由此得到时间信息。然后可以生成该时间信息的时间戳。生成的时间戳可以展示在调用链路拓扑图中。如可作为起始服务节点的详情信息中的一条信息。
综上,本公开实施例提供的***中,基于目标链路标识、追踪标识可串联起一整条调用链路。通过对目标链路标识进行解析,获得第一节点标识和追踪标识,进而得到服务节点间的调用链路。基于追踪标识追踪调用链路,提高了确定调用链路的速度和准确性。该调用链路以第一节点标识对应的服务节点为起始服务节点,提高了定位链路的起始位置的速度和准确性。结合以上两方面,本公开实施例对获取目标调用链路的速度与准确性均有一定提升。
基于相同的技术构思,本公开实施例还提供了一种调用链路的处理装置,如图13所示,包括:
第一获取模块1301,用于获取待处理访问请求;
第一生成模块1302,用于生成待处理访问请求的调用链路的目标链路标识;
其中,目标链路标识用于解析调用链路,目标链路标识中包含第一节点标识和追踪标识;调用链路中包括多个服务节点,第一节点标识用于标记多个服务节点中的起始服务节点;调用链路中、任一服务节点调用被调用服务节点的情况下,追踪标识用于从任一服务节点传递给被调用服务节点,且追踪标识用于追踪解析调用链路中各服务节点之间的调用关系。
在一种可能的实施方式中,第一生成模块1302,包括:
第一划分子模块,用于将待处理访问请求的时间信息划分为第一部分信息和第二部分信息;
第一生成子模块,用于基于第一部分信息生成追踪标识;
第二生成子模块,用于基于第二部分信息时间戳、追踪标识和第一节点标识,生成目标链路标识。
在一种可能的实施方式中,第二生成子模块,用于:
在第一节点标识包含字符的情况下,将第一节点标识编译为数字标识;
将第二部分信息、追踪标识和数字标识编译成数字串,得到目标链路标识。
在一种可能的实施方式中,该装置还包括:
第一保存模块,用于调用服务节点的情况下,将被调用服务节点的第二节点标识保存在本地实例中。
基于相同的技术构思,本实施例还提供了一种调用链路的处理装置,如图14所示,包括:
第二获取模块1401,用于获取目标链路标识;
第一解析模块1402,用于从目标链路标识中解析出第一节点标识和追踪标识;
第二解析模块1403,用于基于追踪标识解析调用链路中各服务节点之间的调用关系;
第二生成模块1404,用于生成以第一节点标识对应的服务节点为起始服务节点,且包含各服务节点之间的调用关系的调用链路。
在一种可能的实施方式中,第一解析模块1402,包括:
第一解析子模块,用于从目标链路标识的第一目标位置,解析出追踪标识;
第二解析子模块,用于从目标链路标识的第二目标位置,解析出数字标识;
反编译子模块,用于对数字标识进行反编译,得到第一节点标识。
在一种可能的实施方式中,第一解析模块1402还包括:
第三解析子模块,用于从追踪标识中解析出时间信息的第一部分信息;
第四解析子模块,用于从目标链路标识的第三目标位置,解析出时间信息的第二部分信息;
时间戳生成子模块,用于基于第一部分信息和第二部分信息生成时间信息的时间戳。
在一种可能的实施方式中,第二解析模块1403,用于:
获取记录有追踪标识的多个服务节点;
针对每个服务节点,分别从服务节点的本地实例中、获取服务节点调用的被调用服务节点的第二节点标识;
基于各服务节点以及各被调用服务节点的第二节点标识,确定调用关系。
在一种可能的实施方式中,第二解析模块1403,包括:
第一筛选子模块,用于基于目标链路标识筛选条件,筛选出至少一个目标链路标识,得到目标链路标识集;
第一选择子模块,用于从目标链路标识集中选择出目标链路标识。
在一种可能的实施方式中,第一筛选子模块,用于:
基于目标链路标识筛选条件,从指定信息中筛选出至少一个目标链路标识;
指定信息包括以下至少一种:日志、上报的错误事件、浏览器的控制台中记录的请求头。
在一种可能的实施方式中,目标链路标识筛选条件包括以下至少一种:接入层类型、地理范围、状态码、域名和IP地址。
基于相同的技术构思,本公开实施例还提供了一种调用链路的处理装置,如图15所示,包括:
第三获取模块1501,用于获取待处理访问请求;
第三生成模块1502,用于生成待处理访问请求的调用链路的目标链路标识;其中,目标链路标识中包含第一节点标识和追踪标识;调用链路中、任一服务节点调用被调用服务节点的情况下,追踪标识用于从任一服务节点传递给被调用服务节点;
第四获取模块1503,用于获取目标链路标识;
第三解析模块1504,用于从目标链路标识中解析出第一节点标识和追踪标识;
第四解析模块1505,用于基于追踪标识解析调用链路中各服务节点之间的调用关系;
第四生成模块1506,用于生成以第一节点标识对应的服务节点为起始服务节点,且包含各服务节点之间的调用关系的调用链路。
在一些实施例中,第三生成模块1502,包括:
第二划分子模块,用于将待处理访问请求的时间信息划分为第一部分信息和第二部分信息;
第三生成子模块,用于基于第一部分信息生成追踪标识;
第四生成子模块,用于基于第二部分信息、追踪标识和第一节点标识,生成目标链路标识。
在一些实施例中,第四生成子模块,用于:
在第一节点标识包含字符的情况下,将第一节点标识编译为数字标识;
将第二部分信息、追踪标识和数字标识编译成数字串,得到目标链路标识。
在一些实施例中,该装置还包括:
第二保存模块,用于调用服务节点的情况下,将被调用服务节点的第二节点标识保存在本地实例中。
在一些实施例中,第三解析模块1504,用于:
从目标链路标识的第一目标位置,解析出追踪标识;
从目标链路标识的第二目标位置,解析出数字标识;
对数字标识进行反编译,得到第一节点标识。
在一些实施例中,第四解析模块1505,用于:
获取记录有追踪标识的多个服务节点;
针对每个服务节点,分别从服务节点的本地实例中、获取服务节点调用的被调用服务节点的第二节点标识;
基于各服务节点以及各被调用服务节点的第二节点标识,确定调用关系。
在一些实施例中,第四获取模块1503,包括:
第二筛选子模块,用于基于目标链路标识筛选条件,筛选出至少一个目标链路标识,得到目标链路标识集;
第二选择子模块,用于从目标链路标识集中选择出目标链路标识。
在一些实施例中,第二筛选子模块,用于:
基于目标链路标识筛选条件,从指定信息中筛选出至少一个目标链路标识;
指定信息包括以下至少一种:日志、上报的错误事件、浏览器的控制台中记录的请求头。
在一些实施例中,目标链路标识筛选条件包括以下至少一种:
接入层类型、地理范围、状态码、域名和IP地址。
本公开实施例的装置的各模块、子模块的具体功能和示例的描述,可以参见上述方法实施例中对应步骤的相关描述,在此不再赘述。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图16示出了可以用来实施本公开的实施例的示例电子设备1600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图16所示,设备1600包括计算单元1601,其可以根据存储在只读存储器(ROM)1602中的计算机程序或者从存储单元1608加载到随机访问存储器(RAM)1603中的计算机程序,来执行各种适当的动作和处理。在RAM 1603中,还可存储设备1600操作所需的各种程序和数据。计算单元1601、ROM 1602以及RAM 1603通过总线1604彼此相连。输入/输出(I/O)接口1605也连接至总线1604。
设备1600中的多个部件连接至I/O接口1605,包括:输入单元1606,例如键盘、鼠标等;输出单元1607,例如各种类型的显示器、扬声器等;存储单元1608,例如磁盘、光盘等;以及通信单元1609,例如网卡、调制解调器、无线通信收发机等。通信单元1609允许设备1600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1601执行上文所描述的各个方法和处理,例如调用链路的处理方法。例如,在一些实施例中,调用链路的处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1602和/或通信单元1609而被载入和/或安装到设备1600上。当计算机程序加载到RAM 1603并由计算单元1601执行时,可以执行上文描述的调用链路的处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元1601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行调用链路的处理方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式***的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (28)

1.一种调用链路的处理方法,包括:
获取待处理访问请求;
生成所述待处理访问请求的调用链路的目标链路标识;
其中,所述目标链路标识用于解析所述调用链路,所述目标链路标识中包含第一节点标识和追踪标识;所述调用链路中包括多个服务节点,所述第一节点标识用于标记所述多个服务节点中的起始服务节点;所述调用链路中、任一服务节点调用被调用服务节点的情况下,所述追踪标识用于从所述任一服务节点传递给所述被调用服务节点,且所述追踪标识用于解析所述调用链路中各服务节点之间的调用关系。
2.根据权利要求1所述的方法,其中,所述生成所述待处理访问请求的调用链路的目标链路标识,包括:
将所述待处理访问请求的时间信息划分为第一部分信息和第二部分信息;
基于所述第一部分信息生成所述追踪标识;
基于所述第二部分信息、所述追踪标识和所述第一节点标识,生成所述目标链路标识。
3.根据权利要求2所述的方法,其中,所述基于所述第二部分信息、所述追踪标识和所述第一节点标识,生成所述目标链路标识,包括:
在所述第一节点标识包含字符的情况下,将所述第一节点标识编译为数字标识;
将所述第二部分信息、所述追踪标识和所述数字标识编译成数字串,得到所述目标链路标识。
4.根据权利要求1-3中任一项所述的方法,还包括:
调用服务节点的情况下,将被调用服务节点的第二节点标识保存在本地实例中。
5.一种调用链路的处理方法,包括:
获取目标链路标识;
从所述目标链路标识中解析出第一节点标识和追踪标识;
基于所述追踪标识解析所述调用链路中各服务节点之间的调用关系;
生成以所述第一节点标识对应的服务节点为起始服务节点,且包含所述各服务节点之间的调用关系的调用链路。
6.根据权利要求5所述的方法,其中,所述从所述目标链路标识中解析出第一节点标识和追踪标识,包括:
从所述目标链路标识的第一目标位置,解析出所述追踪标识;
从所述目标链路标识的第二目标位置,解析出数字标识;
对所述数字标识进行反编译,得到所述第一节点标识。
7.根据权利要求5或6所述的方法,还包括:
从所述追踪标识中解析出时间信息的第一部分信息;
从所述目标链路标识的第三目标位置,解析出所述时间信息的第二部分信息;
基于所述第一部分信息和所述第二部分信息生成所述时间信息的时间戳。
8.根据权利要求5所述的方法,其中,所述基于所述追踪标识解析所述调用链路中各服务节点之间的调用关系,包括:
获取记录有所述追踪标识的多个服务节点;
针对每个服务节点,分别从所述服务节点的本地实例中、获取所述服务节点调用的被调用服务节点的第二节点标识;
基于各服务节点以及各被调用服务节点的第二节点标识,确定所述调用关系。
9.根据权利要求5-8中任一项所述的方法,其中,所述获取所述目标链路标识,包括:
基于目标链路标识筛选条件,筛选出至少一个目标链路标识,得到目标链路标识集;
从所述目标链路标识集中选择出所述目标链路标识。
10.根据权利要求9所述的方法,其中,所述基于目标链路标识筛选条件,筛选出至少一个目标链路标识,包括:
基于所述目标链路标识筛选条件,从指定信息中筛选出至少一个目标链路标识;
所述指定信息包括以下至少一种:日志、上报的错误事件、浏览器的控制台中记录的请求头。
11.根据权利要求9所述的方法,所述目标链路标识筛选条件包括以下至少一种:
接入层类型、地理范围、状态码、域名和IP地址。
12.一种调用链路的处理方法,包括:
获取待处理访问请求;
生成所述待处理访问请求的调用链路的目标链路标识;其中,所述目标链路标识中包含第一节点标识和追踪标识;所述调用链路中、任一服务节点调用被调用服务节点的情况下,所述追踪标识用于从所述任一服务节点传递给所述被调用服务节点;
获取所述目标链路标识;
从所述目标链路标识中解析出所述第一节点标识和所述追踪标识;
基于所述追踪标识解析所述调用链路中各服务节点之间的调用关系;
生成以所述第一节点标识对应的服务节点为起始服务节点,且包含所述各服务节点之间的调用关系的调用链路。
13.根据权利要求12所述的方法,其中,所述生成所述待处理访问请求的调用链路的目标链路标识,包括:
将所述待处理访问请求的时间信息划分为第一部分信息和第二部分信息;
基于所述第一部分信息生成所述追踪标识;
基于所述第二部分信息、所述追踪标识和所述第一节点标识,生成所述目标链路标识。
14.根据权利要求13所述的方法,其中,所述基于所述第二部分信息、所述追踪标识和所述第一节点标识,生成所述目标链路标识,包括:
在所述第一节点标识包含字符的情况下,将所述第一节点标识编译为数字标识;
将所述第二部分信息、所述追踪标识和所述数字标识编译成数字串,得到所述目标链路标识。
15.根据权利要求12-14中任一项所述的方法,还包括:
调用服务节点的情况下,将被调用服务节点的第二节点标识保存在本地实例中。
16.根据权利要求12所述的方法,其中,所述从所述目标链路标识中解析出所述第一节点标识和所述追踪标识,包括:
从所述目标链路标识的第一目标位置,解析出所述追踪标识;
从所述目标链路标识的第二目标位置,解析出数字标识;
对所述数字标识进行反编译,得到所述第一节点标识。
17.根据权利要求1-16中任一项所述的方法,还包括:
从所述追踪标识中解析出时间信息的第一部分信息;
从所述目标链路标识的第三目标位置,解析出所述时间信息的第二部分信息;
基于所述第一部分信息和所述第二部分信息生成所述时间信息的时间戳。
18.根据权利要求1-16中任一项所述的方法,其中,所述基于所述追踪标识解析所述调用链路中各服务节点之间的调用关系,包括:
获取记录有所述追踪标识的多个服务节点;
针对每个服务节点,分别从所述服务节点的本地实例中、获取所述服务节点调用的被调用服务节点的第二节点标识;
基于各服务节点以及各被调用服务节点的第二节点标识,确定所述调用关系。
19.根据权利要求12-18中任一项所述的方法,其中,所述获取所述目标链路标识,包括:
基于目标链路标识筛选条件,筛选出至少一个目标链路标识,得到目标链路标识集;
从所述目标链路标识集中选择出所述目标链路标识。
20.根据权利要求19所述的方法,其中,所述基于目标链路标识筛选条件,筛选出至少一个目标链路标识,包括:
基于所述目标链路标识筛选条件,从指定信息中筛选出至少一个目标链路标识;
所述指定信息包括以下至少一种:日志、上报的错误事件、浏览器的控制台中记录的请求头。
21.根据权利要求19所述的方法,所述目标链路标识筛选条件包括以下至少一种:
接入层类型、地理范围、状态码、域名和IP地址。
22.一种调用链路的处理***,包括:
网关,用于执行如权利要求1-4中任一项所述的方法;
链路解析服务器,用于执行如权利要求5-11中任一项所述的方法。
23.一种调用链路的处理装置,包括:
第一获取模块,用于获取待处理访问请求;
第一生成模块,用于生成所述待处理访问请求的调用链路的目标链路标识;
其中,所述目标链路标识用于解析所述调用链路,所述目标链路标识中包含第一节点标识和追踪标识;所述调用链路中包括多个服务节点,所述第一节点标识用于标记所述多个服务节点中的起始服务节点;所述调用链路中、任一服务节点调用被调用服务节点的情况下,所述追踪标识用于从所述任一服务节点传递给所述被调用服务节点,且所述追踪标识用于追踪解析所述调用链路中各服务节点之间的调用关系。
24.一种调用链路的处理装置,包括:
第二获取模块,用于获取目标链路标识;
第一解析模块,用于从所述目标链路标识中解析出第一节点标识和追踪标识;
第二解析模块,用于基于所述追踪标识解析所述调用链路中各服务节点之间的调用关系;
第二生成模块,用于生成以所述第一节点标识对应的服务节点为起始服务节点,且包含所述各服务节点之间的调用关系的调用链路。
25.一种调用链路的处理装置,包括:
第三获取模块,用于获取待处理访问请求;
第三生成模块,用于生成所述待处理访问请求的调用链路的目标链路标识;其中,所述目标链路标识中包含第一节点标识和追踪标识;所述调用链路中、任一服务节点调用被调用服务节点的情况下,所述追踪标识用于从所述任一服务节点传递给所述被调用服务节点;
第四获取模块,用于获取所述目标链路标识;
第三解析模块,用于从所述目标链路标识中解析出所述第一节点标识和所述追踪标识;
第四解析模块,用于基于所述追踪标识解析所述调用链路中各服务节点之间的调用关系;
第四生成模块,用于生成以所述第一节点标识对应的服务节点为起始服务节点,且包含所述各服务节点之间的调用关系的调用链路。
26.一种电子设备,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-21中任一项所述的方法。
27.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-21中任一项所述的方法。
28.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-21中任一项所述的方法。
CN202211193485.1A 2022-08-19 2022-09-28 调用链路的处理方法、装置、***、电子设备及存储介质 Pending CN115567607A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2022109996417 2022-08-19
CN202210999641 2022-08-19

Publications (1)

Publication Number Publication Date
CN115567607A true CN115567607A (zh) 2023-01-03

Family

ID=84742307

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211193485.1A Pending CN115567607A (zh) 2022-08-19 2022-09-28 调用链路的处理方法、装置、***、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115567607A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116346473A (zh) * 2023-03-29 2023-06-27 贝壳找房(北京)科技有限公司 调用链路的识别方法、设备、存储介质及计算机程序产品
CN117061334A (zh) * 2023-09-19 2023-11-14 北京优特捷信息技术有限公司 一种链路告警处理方法、装置、设备及存储介质
CN117632445A (zh) * 2024-01-25 2024-03-01 杭州阿里云飞天信息技术有限公司 请求处理方法以及装置、任务执行方法以及装置
CN117891708A (zh) * 2024-01-16 2024-04-16 北京安胜华信科技有限公司 一种调用链路追踪方法及***

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116346473A (zh) * 2023-03-29 2023-06-27 贝壳找房(北京)科技有限公司 调用链路的识别方法、设备、存储介质及计算机程序产品
CN116346473B (zh) * 2023-03-29 2024-03-26 贝壳找房(北京)科技有限公司 调用链路的识别方法、设备、存储介质及计算机程序产品
CN117061334A (zh) * 2023-09-19 2023-11-14 北京优特捷信息技术有限公司 一种链路告警处理方法、装置、设备及存储介质
CN117891708A (zh) * 2024-01-16 2024-04-16 北京安胜华信科技有限公司 一种调用链路追踪方法及***
CN117632445A (zh) * 2024-01-25 2024-03-01 杭州阿里云飞天信息技术有限公司 请求处理方法以及装置、任务执行方法以及装置
CN117632445B (zh) * 2024-01-25 2024-04-30 杭州阿里云飞天信息技术有限公司 请求处理方法以及装置、任务执行方法以及装置

Similar Documents

Publication Publication Date Title
CN115567607A (zh) 调用链路的处理方法、装置、***、电子设备及存储介质
US10528454B1 (en) Intelligent automation of computer software testing log aggregation, analysis, and error remediation
CN111367886B (zh) 数据库中数据迁移的方法及装置
CN106656536B (zh) 一种用于处理服务调用信息的方法与设备
US20150261595A1 (en) System and method for definition, creation, management, transmission, and monitoring of errors in soa environment
CN109344170B (zh) 流数据处理方法、***、电子设备及可读存储介质
CN114490268A (zh) 全链路监控方法、装置、设备、存储介质和程序产品
US10284660B1 (en) Data flow tokens to trace execution of services in a service provider network
CN111241182A (zh) 数据处理方法和装置、存储介质和电子装置
CN109871289A (zh) 一种远程过程调用rpc服务生成方法及装置
JP7081658B2 (ja) 情報処理装置、データ管理システム、データ管理方法及びデータ管理プログラム
CN111090417A (zh) 二进制文件解析方法、装置、设备及介质
CN106411970A (zh) 一种基于服务调用的故障处理方法、装置和***
CN111460241A (zh) 一种数据查询方法、装置、电子设备及存储介质
CN112631590A (zh) 组件库生成方法、装置、电子设备和计算机可读介质
CN112926008B (zh) 生成表单页面的方法、装置、电子设备和存储介质
CN111159301A (zh) 一种基于智能合约的数据创建方法、装置、设备及存储介质
CN113806169A (zh) 业务异常处理方法及装置
CN110598419A (zh) 一种区块链客户端漏洞挖掘方法、装置、设备及存储介质
US11182272B2 (en) Application state monitoring
CN113918770B (zh) 字符串与时间字段的转换方法及装置
CN113641523B (zh) 一种日志处理方法及装置
CN115757639A (zh) 数据源同步方法、装置、电子设备及存储介质
CN114115908A (zh) 一种指令集生成、程序解析方法装置、设备以及存储介质
CN112835901A (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