CN115580647A - 一种服务调用链路追踪方法、系统及电子设备 - Google Patents
一种服务调用链路追踪方法、系统及电子设备 Download PDFInfo
- Publication number
- CN115580647A CN115580647A CN202211043365.3A CN202211043365A CN115580647A CN 115580647 A CN115580647 A CN 115580647A CN 202211043365 A CN202211043365 A CN 202211043365A CN 115580647 A CN115580647 A CN 115580647A
- Authority
- CN
- China
- Prior art keywords
- service
- request
- node
- identifier
- micro
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本说明书公开了一种服务调用链路追踪方法、系统及电子设备,能够对服务调用链路进行准确追踪。所述方法应用于云服务系统,所述云服务系统包括日志管理端与多个微服务节点;所述方法包括:当前微服务节点接收来自上游微服务节点的第一服务调用请求,生成请求标识,所述请求标识用于标记所述第一服务调用请求;确定所述第一服务调用请求的请求参数,根据所述请求参数确定追踪标识,所述追踪标识用于标记所述上游微服务节点;生成服务调用日志,所述服务调用日志记录所述请求标识与所述追踪标识;所述当前微服务节点将所述服务调用日志发送给所述日志管理端;所述日志管理端根据多项所述服务调用日志对多个所述微服务节点间的服务调用链路进行追踪。
Description
技术领域
本发明涉及微服务架构技术领域,具体涉及一种服务调用链路追踪方法、系统及电子设备。
背景技术
随着云计算技术快速发展,云平台的应用也愈发广泛。云平台系统大多采用分布式的微服务架构,在系统中各个微服务可以被独立部署,每个微服务仅仅关注并完成一个业务方向。随着云平台规模越来越大,系统中部署的微服务也越来越多,业务复杂性也因此大大提高。一个业务请求可能需要调用很多微服务,而多个微服务间又相互多次调用,如果出现错误和异常,定位故障点非常困难。因此,需要对云平台系统中业务请求的调用链路进行追踪,基于调用链路实现故障定位。
发明内容
有鉴于此,本发明实施例提供了一种服务调用链路追踪方法、系统及电子设备,能够对服务调用链路进行准确追踪。
在第一方面,本说明书实施例提供了一种服务调用链路追踪方法。所述方法应用于云服务系统,所述云服务系统包括日志管理端与多个微服务节点。所述方法包括:
当前微服务节点接收来自上游微服务节点的第一服务调用请求,生成请求标识,所述请求标识用于标记所述第一服务调用请求;
确定所述第一服务调用请求的请求参数,根据所述请求参数确定追踪标识,所述追踪标识用于标记所述上游微服务节点;
生成服务调用日志,所述服务调用日志记录所述请求标识与所述追踪标识;
所述当前微服务节点将所述服务调用日志发送给所述日志管理端;
所述日志管理端根据多项所述服务调用日志对多个所述微服务节点间的服务调用链路进行追踪。
可选的,所述当前微服务节点所述接收来自上游微服务节点的第一服务调用请求,生成请求标识,包括:
在接收到所述第一服务调用请求时,生成与所述第一服务调用请求唯一对应的随机码,将所述随机码作为所述请求标识。
可选的,所述当前微服务节点所述接收来自上游微服务节点的第一服务调用请求,生成请求标识,包括:
确定所述第一服务调用请求的接收时间,生成与所述接收时间相对应的时间戳,将所述时间戳作为所述请求标识。
可选的,所述第一服务调用请求的所述请求参数中包括所述上游微服务节点相应的所述请求标识;
所述根据所述请求参数生成追踪标识,包括:
从所述请求参数中提取所述上游微服务节点相应的所述请求标识;
将所述上游微服务节点相应的所述请求标识作为所述追踪标识。
可选的,所述云服务系统还包括网关节点;
响应于所述第一服务调用请求来自所述网关节点,所述请求参数包括所述网关节点的身份标识;
所述根据所述请求参数生成追踪标识,包括:
从所述请求参数中提取所述身份标识;
将所述身份标识作为所述追踪标识。
可选的,所述当前微服务节点在生成请求标识后,还包括:
生成第二服务调用请求,所述第二服务调用请求的请求参数包括所述请求标识;
将所述第二服务调用请求发送至下游微服务节点。
可选的,所述第一服务调用请求的所述请求参数中还包括服务调用时间信息;
所述服务调用日志包括所述服务调用时间信息。
可选的,所述日志管理端根据多项所述服务调用日志对多个所述微服务节点间的服务调用链路进行追踪,包括:
根据所述服务调用日志中的所述追踪标识,确定与所述服务调用日志相对应所述微服务节点的上游微服务节点;
根据所述服务调用日志中的所述请求标识,确定所述上游微服务节点与所述服务调用日志相应所述微服务节点间的调用关系,在所述上游微服务节点与所述服务调用日志相应所述微服务节点间建立调用链路。
在第二方面,本说明书实施例还提供了一种服务调用链追踪系统,所述系统包括日志管理端与多个微服务节点。
所述微服务节点,用于接收来自上游微服务节点的第一服务调用请求,生成请求标识,所述请求标识用于标记所述第一服务调用请求;
所述微服务节点,还用于确定所述第一服务调用请求的请求参数,根据所述请求参数确定追踪标识,所述追踪标识用于标记所述上游微服务节点;
所述微服务节点,还用于生成服务调用日志,所述服务调用日志记录所述请求标识与所述追踪标识;
所述微服务节点,还用于将所述服务调用日志发送给所述日志管理端;
所述日志管理端,用于根据多项所述服务调用日志对多个所述微服务节点间的服务调用链路进行追踪。
在第三方面,本说明书实施例还提供了一种服务调用链路追踪电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的服务调用链路追踪方法。
从上面可以看出,本说明书实施例所提供的一种服务调用链路追踪方法、系统及电子设备,具有以下有益技术效果:
所述服务调用链追踪方法中,云服务系统中的每个微服务节点在接收到服务调用请求时都针对服务调用请求生成请标识与追踪标识,并基于所述请求标识与所述追中标识生成服务调用日志。多个所述微服务节点的所生成的多项所述服务调用日志汇总发送至所述日志管理端,所述日志管理端可以根据多项所述服务调用日志对服务调用链路进行准确追踪。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了本说明书一个或多个可选实施例所提供的一种服务调用链追踪方法示意图;
图2示出了本说明书一个或多个可选实施例所提供的一种服务调用链追踪方法中生成追踪标识的方法示意图;
图3示出了本说明书一个或多个可选实施例所提供的一种服务调用链追踪方法中生成第二服务调用请求的方法示意图;
图4示出了本说明书一个或多个可选实施例所提供的一种服务调用链追踪方法的又一示意图;
图5示出了本说明书一个或多个可选实施例所提供的一种服务调用链追踪方法所确定的服务调用链路示意图;
图6示出了本说明书一个或多个可选实施例所提供的一种服务调用链追踪方法所确定的服务调用链路时序标识形式示意图;
图7示出了本说明书一个或多个可选实施例所提供的一种服务调用链追踪系统结构示意图;
图8示出了本说明书一个或多个可选实施例所提供的一种服务调用链追踪电子设备示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着云计算技术快速发展,云平台的应用也愈发广泛。云平台系统大多采用分布式的微服务架构,在系统中各个微服务可以被独立部署,每个微服务仅仅关注并完成一个业务方向。随着云平台规模越来越大,系统中部署的微服务也越来越多,业务复杂性也因此大大提高。一个业务请求可能需要调用很多微服务,而多个微服务间又相互多次调用,如果出现错误和异常,定位故障点非常困难。因此,需要对云平台系统中业务请求的调用链路进行追踪,基于调用链路实现故障定位。
针对上述问题,本说明书技术方案的目的在于提出一种服务调用链路追踪方法,每个微服务节点在接收到服务调用请求时生成相应的服务调用日志,利用所述服务调用日志记录调用相关信息。并设置日志管理端利用多项服务调用日志对服务调用链路进行追踪还原。
基于上述目的,在一方面本说明书实施例提供了一种服务调用链追踪方法。
如图1所示,本说明书一个或多个可选实施例所提供的一种服务调用链追踪方法,应用于云服务系统,所述云服务系统包括日志管理端与多个微服务节点。所述方法包括:
S1:当前微服务节点接收来自上游微服务节点的第一服务调用请求,生成请求标识,所述请求标识用于标记所述第一服务调用请求。
在所述云服务系统中,云服务请求往往涉及多个所述微服务节点之间的服务调用。多个所述微服务节点中的当前微服务节点在接收到所述第一服务调用请求时,可以生成与所述第一服务调用请求唯一对应的所述请求标识,以标记所述第一服务调用请求。
一些可选实施例中,所述当前微服务节点可以生成与所述第一服务调用请求唯一对应的随机码,将所述随机码作为所述请求标识。一些可选实施例中,还可以确定所述第一服务调用请求的接收时间,生成与所述接收时间相对应的时间戳,将所述时间戳作为所述请求标识,以所述时间戳作为所述请求标识可以唯一标记确定所述第一服务调用请求。
S2:确定所述第一服务调用请求的请求参数,根据所述请求参数确定追踪标识,所述追踪标识用于标记所述上游微服务节点。
在所述第一服务调用请求的所述请求参数,可以包含有与所述上游微服务节点相对应的参数信息。所述当前微服务节点在接收到所述第一服务调用请求时,可以从所述请求参数中提取出与所述上游微服务节点相应的参数信息,并依此确定追踪标识。所述追踪标识可以用于标记所述上游微服务节点。
S3:生成服务调用日志,所述服务调用日志记录所述请求标识与所述追踪标识。
S4:所述当前微服务节点将所述服务调用日志发送给所述日志管理端。
所述当前微服务节点可以根据所述请求标识与所述追踪标识生成所述服务调用日志,并发送至所述日志管理端。由所述日志管理端对多项服务调用日志进行汇总记录存储。
S5:所述日志管理端根据多项所述服务调用日志对多个所述微服务节点间的服务调用链路进行追踪。
在每项所述服务调用日志中,均记录有对应所述微服务节点在接收到服务调用请求被调用时的所述请求标识与所述追踪标识。所述日志管理端可以根据所述服务调用日志中的所述追踪标识,确定与所述服务调用日志相对应所述微服务节点的上游微服务节点;根据所述服务调用日志中的所述请求标识,则可以确定所述上游微服务节点与所述服务调用日志相应所述微服务节点间的调用关系,在所述上游微服务节点与所述服务调用日志相应所述微服务节点间建立调用链路。所述日志管理端可以根据多项所述服务调用日志则可以确定包括多个所述微服务节点的服务调用链路,实现对服务调用链路的追踪。
所述服务调用链追踪方法中,云服务系统中的每个微服务节点在接收到服务调用请求时都针对服务调用请求生成请标识与追踪标识,并基于所述请求标识与所述追中标识生成服务调用日志。多个所述微服务节点的所生成的多项所述服务调用日志汇总发送至所述日志管理端,所述日志管理端可以根据多项所述服务调用日志对服务调用链路进行准确追踪。
如图2所示,在本说明书一个或多个可选实施例所提供的一种服务调用链追踪方法中,所述第一服务调用请求的所述请求参数中包括所述上游微服务节点相应的所述请求标识。所述上游微服务节点相应的所述请求标识,是指所述上游微服务节点在接收到服务调用请求时所生成的请求标识。
所述根据所述请求参数生成追踪标识,包括:
S201:从所述请求参数中提取所述上游微服务节点相应的所述请求标识;
S202:将所述上游微服务节点相应的所述请求标识作为所述追踪标识。
在一些较为复杂的应用场景中,不同服务节点可能被同一服务节点调用,同样的同一服务节点也可能别多个不同的服务节点所调用,仅仅确定相邻两节点间的调用关系,整体调用链路仍无法完全区分。
因此在所述服务调用追踪方法中,选用所述上游微服务节点相应的所述请求标识作为所述追踪标识。利用所述追踪标识可以唯一确定所述上游微服务节点的同时,还能针对所述上游微服务节点进一步确定上游节点,从而利用节点间的服务调用关系将三个微服务节点联系在一起,确定三者间的服务调用链路,能够完全准确地区分整体调用链路。
在本说明书一个或多个可选实施例所提供的一种服务调用链追踪方法中,所述云服务系统还包括网关节点。在所述云服务系统中,当用户需求某项云服务时可以向所述网关节点发送云服务请求,从所述网关节点开始调用多个所述微服务节点。
响应于所述第一服务调用请求来自所述网关节点,所述请求参数包括所述网关节点的身份标识。
所述根据所述请求参数生成追踪标识,包括:从所述请求参数中提取所述身份标识;将所述身份标识作为所述追踪标识。
在所述云服务系统中,用户发起的云服务请求经过所述网关节点开始调用多个微服务节点,所述网关节点为服务调用链路的起始节点。所述当前微服务节点在接收到来自所述网关节点的服务调用请求后提取确定所述网关节点的所述身份标识,并记录所述身份标识作为所述追踪标识。
一些可选实施中,用户向所述网关节点发送云服务请求,所述网关用户生成与所述云服务请求唯一对应的云服务标识。所述云服务标识用于标记所述云服务请求。所述网关节点作为服务调用链路的起始节点,从所述网关节点开始,每次调用下游微服务节点时所发送的服务调用请求的所述请求参数中均包括所述云服务标识。每个所述微服务节点在接收到服务调用请求后所生成的所述服务调用日志,还记录有所述云服务标识。
所述日志管理端进行服务调用链路追踪时,可以根据所述云服务标识确定与所述云服务请求相关联的多项所述服务调用日志,并且可以进一步确定多项所述服务调用日志相对应的多个所述微服务节点即所述云服务请求对应服务调用链路中的多个节点。
如图3所示,本说明书一个或多个可选实施例所提供的一种服务调用链追踪方法,所述当前微服务节点在生成请求标识后,还包括:
S301:生成第二服务调用请求,所述第二服务调用请求的请求参数包括所述请求标识;
S302:将所述第二服务调用请求发送至下游微服务节点。
所述当前微服务节点被所述上游微服务节点调用,提供相应的服务功能后,可能会继续调用其他微服务节点。所述当前微服务节点可以通过向下游微服务节点发送第二服务调用请求以实现对所述下游微服务节点的调用。其中,所述第二服务调用请求中记录有所述当前微服务节点在接收到所述第一服务调用请求时所生成的所述请求标识。所述请求标识随所述第二服务调用请求发送至所述下游服务节点,用于使所述下游服务节点根据所述请求标识唯一标记确定所述当前服务节点。
在本说明书一个或多个可选实施例所提供的一种服务调用链追踪方法中,所述第一服务调用请求的所述请求参数中还包括服务调用时间信息。
所述当前微服务节点在接收到所述第一服务调用请求时,还从所述请求参数中提取确定所述服务调用时间信息。在生成所述服务调用日志时,还将所述服务调用时间信息添加到所述服务调用日志中。
所述日志管理端根据多项所述服务调用日志对多个所述微服务节点间的服务调用链路进行追踪时,还根据各个所述微服务节点相应的所述服务调用时间对所述服务调用链路进行时序调整。
如图4所示,本说明书一个或多个可选实施例所提供的一种服务调用链追踪方法,包括:
步骤s100:用户向云服务系统发送云服务请求,发送云服务请求时可以通过超文本传输协议发送;
步骤s101:云服务系统将云服务请求发送给系统中的网关节点;
步骤s102:网关节点接受到本次云服务请求,生成与所述云服务请求相对应的通用唯一识别码(Universally Unique Identifier,UUID)作为此次云服务请求的云服务标识(request_id),将云服务标识request_id添加到云服务请求的请求参数,根据路由规则调用网关节点下游的微服务节点,所述云服务请求相当于所述微服务节点的第一服务调用请求;
步骤s103:所述微服务节点接收来自网关节点的所述第一服务调用请求。所述微服务节点记录其中的云服务标识request_id,生成请求标识trace_id,并将本节点的追踪标识parent_trace_id设置为0,表示本次服务调用请求是服务调用链中的首次请求。针对本次服务调用请求,所述微服务节点生成服务调用日志,所述服务调用日志中中记录所述云服务标识request_id,所述请求标识trace_id以及所述追踪标识parent_trace_id;
步骤s104:根据云服务需求,所述微服务节点生成第二服务调用请求继续调用下游微服务节点以获取服务数据,所述第二服务调用请求在请求参数中携带云服务标识request_id以及本节点的所述请求标识trace_id。
所述微服务节点下发的所述第二服务调用请求,对所述下游微服务节点而言是所述下游微服务节点的第一服务调用请求。所述下游微服务节点在接收到所述第一服务调用请求后,将请求参数中的来自上游节点的请求标识trace_id赋值给本节点的追踪标识parent_trace_id,并生成新的请求标识trace_id,所生成的所述请求标识值不为0,表示所述下游微服务节点所接受到的所述第一服务调用请求不是服务调用链中的首次请求;
步骤s105:从第一个微服务节点开始,所有微服务节点所生成的所述服务调用日志均记录所述云服务标识request_id,请求标识trace_id以及追踪标识parent_trace_id;
步骤s106:日志管理端对应每个微服务节点设置对应的日志采集器采集所生成的所述服务调用日志,可以选用Filebeat日志托运工具作为日志采集器;
步骤s107:日志采集器将采集到的日志发送给日志清洗过滤器集群,日志清洗过滤器通常是Logstash。根据用户配置进行日志的清洗和整理;
步骤s108:整理后的日志文件交由ElasticSearch集群来存储和建立索引;
步骤s109:在需要进行服务调用链路追踪时,将日志搜索请求转发给日志管理端;
步骤s110:日志管理端从ElasticSearch集群中获取日志数据,并根据多项所述服务调用日志中的所述云服务标识request_id,所述请求标识trace_id及所述追踪标识parent_trace_id整理成日志追踪数据返回给用户。
如下表1所示,为本说明书一个或多个可选实施例所提供的一种服务调用链路追踪方法中,所述日志管理端所采集的多项所述服务调用日志的数据示意表。
request_id | trace_id | parent_trace_id | service_name | begin_time | end_time |
123 | A | 0 | 业务微服务1 | 14:00:00 | 14:00:10 |
123 | B | A | 业务微服务2 | 14:00:02 | 14:00:05 |
123 | C | B | 业务微服务4 | 14:00:03 | 14:00:05 |
123 | D | A | 业务微服务3 | 14:00:06 | 14:00:10 |
表1
所述日志管理端可以根据表1所记录的数据进行调用链路追踪。多项所述服务调用日志中,request_id均为“123”,说明表1中所记载的多项所述服务调用日志与同一云服务请求关联。“业务微服务1”所表示的微服务节点,其对应的parent_trace_id值为0,可以确定“业务微服务1”所表示的所述微服务节点是第一个被调用的节点,可以从此节点开始进行链路追踪。如图5所示,为最后所确定的多个所述微服务节点构成的服务调用链路示意图。
如上表1所示,所述服务调用日志中还记录有服务调用时间信息(begin_time,end_time),可以根据所述服务调用时间信息对服务调用链路进行时序调整。如图6所示,为所述服务调用链路的时序表示形式。
需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本说明书实施例还提供了一种服务调用链追踪系统。
如图7所示,所述服务调用链追踪系统,包括日志管理端与多个微服务节点;
所述微服务节点,用于接收来自上游微服务节点的第一服务调用请求,生成请求标识,所述请求标识用于标记所述第一服务调用请求;
所述微服务节点,还用于确定所述第一服务调用请求的请求参数,根据所述请求参数确定追踪标识,所述追踪标识用于标记所述上游微服务节点;
所述微服务节点,还用于生成服务调用日志,所述服务调用日志记录所述请求标识与所述追踪标识;
所述微服务节点,还用于将所述服务调用日志发送给所述日志管理端;
所述日志管理端,用于根据多项所述服务调用日志对多个所述微服务节点间的服务调用链路进行追踪。
在本说明书一个或多个可选实施例所提供的一种服务调用链路追踪系统中,所述微服务节点,还用于在接收到所述第一服务调用请求时,生成与所述第一服务调用请求唯一对应的随机码,将所述随机码作为所述请求标识。
在本说明书一个或多个可选实施例所提供的一种服务调用链路追踪系统中,所述微服务节点,还用于确定所述第一服务调用请求的接收时间,生成与所述接收时间相对应的时间戳,将所述时间戳作为所述请求标识。
在本说明书一个或多个可选实施例所提供的一种服务调用链路追踪系统中,所述第一服务调用请求的所述请求参数中包括所述上游微服务节点相应的所述请求标识;所述微服务节点,还用于从所述请求参数中提取所述上游微服务节点相应的所述请求标识;将所述上游微服务节点相应的所述请求标识作为所述追踪标识。
本说明书一个或多个可选实施例所提供的一种服务调用链路追踪系统还包括网关节点。在所述第一服务调用请求来自所述网关节点时,所述请求参数包括所述网关节点的身份标识。所述微服务节点,还用于从所述请求参数中提取所述身份标识;将所述身份标识作为所述追踪标识。
在本说明书一个或多个可选实施例所提供的一种服务调用链路追踪系统中,所述微服务节点还用于在生成请求标识后生成第二服务调用请求,所述第二服务调用请求的请求参数包括所述请求标识;将所述第二服务调用请求发送至下游微服务节点。
在本说明书一个或多个可选实施例所提供的一种服务调用链路追踪系统中,所述第一服务调用请求的所述请求参数中还包括云服务标识以及服务调用时间信息;所述服务调用日志包括所述服务调用时间信息。
在本说明书一个或多个可选实施例所提供的一种服务调用链路追踪系统中,所述日志管理端,还用于根据所述服务调用日志中的所述追踪标识,确定与所述服务调用日志相对应所述微服务节点的上游微服务节点;根据所述服务调用日志中的所述请求标识,确定所述上游微服务节点与所述服务调用日志相应所述微服务节点间的调用关系,在所述上游微服务节点与所述服务调用日志相应所述微服务节点间建立调用链路。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的服务调用链路追踪方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的服务调用链路追踪方法。
图8示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的服务调用链路追踪方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的服务调用链路追踪方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的服务调用链路追踪方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种服务调用链追踪方法,其特征在于,应用于云服务系统,所述云服务系统包括日志管理端与多个微服务节点;所述方法包括:
当前微服务节点接收来自上游微服务节点的第一服务调用请求,生成请求标识,所述请求标识用于标记所述第一服务调用请求;
确定所述第一服务调用请求的请求参数,根据所述请求参数确定追踪标识,所述追踪标识用于标记所述上游微服务节点;
生成服务调用日志,所述服务调用日志记录所述请求标识与所述追踪标识;
所述当前微服务节点将所述服务调用日志发送给所述日志管理端;
所述日志管理端根据多项所述服务调用日志对多个所述微服务节点间的服务调用链路进行追踪。
2.根据权利要求1所述的方法,其特征在于,所述当前微服务节点所述接收来自上游微服务节点的第一服务调用请求,生成请求标识,包括:
在接收到所述第一服务调用请求时,生成与所述第一服务调用请求唯一对应的随机码,将所述随机码作为所述请求标识。
3.根据权利要求1所述的方法,其特征在于,所述当前微服务节点所述接收来自上游微服务节点的第一服务调用请求,生成请求标识,包括:
确定所述第一服务调用请求的接收时间,生成与所述接收时间相对应的时间戳,将所述时间戳作为所述请求标识。
4.根据权利要求1所述的方法,其特征在于,所述第一服务调用请求的所述请求参数中包括所述上游微服务节点相应的所述请求标识;
所述根据所述请求参数生成追踪标识,包括:
从所述请求参数中提取所述上游微服务节点相应的所述请求标识;
将所述上游微服务节点相应的所述请求标识作为所述追踪标识。
5.根据权利要求1所述的方法,其特征在于,所述云服务系统还包括网关节点;
响应于所述第一服务调用请求来自所述网关节点,所述请求参数包括所述网关节点的身份标识;
所述根据所述请求参数生成追踪标识,包括:
从所述请求参数中提取所述身份标识;
将所述身份标识作为所述追踪标识。
6.根据权利要求1所述的方法,其特征在于,所述当前微服务节点在生成请求标识后,还包括:
生成第二服务调用请求,所述第二服务调用请求的请求参数包括所述请求标识;
将所述第二服务调用请求发送至下游微服务节点。
7.根据权利要求4所述的方法,其特征在于,所述第一服务调用请求的所述请求参数中还包括服务调用时间信息;
所述服务调用日志包括所述服务调用时间信息。
8.根据权利要求1所述的方法,其特征在于,所述日志管理端根据多项所述服务调用日志对多个所述微服务节点间的服务调用链路进行追踪,包括:
根据所述服务调用日志中的所述追踪标识,确定与所述服务调用日志相对应所述微服务节点的上游微服务节点;
根据所述服务调用日志中的所述请求标识,确定所述上游微服务节点与所述服务调用日志相应所述微服务节点间的调用关系,在所述上游微服务节点与所述服务调用日志相应所述微服务节点间建立调用链路。
9.一种服务调用链追踪系统,其特征在于,所述系统包括日志管理端与多个微服务节点;
所述微服务节点,用于接收来自上游微服务节点的第一服务调用请求,生成请求标识,所述请求标识用于标记所述第一服务调用请求;
所述微服务节点,还用于确定所述第一服务调用请求的请求参数,根据所述请求参数确定追踪标识,所述追踪标识用于标记所述上游微服务节点;
所述微服务节点,还用于生成服务调用日志,所述服务调用日志记录所述请求标识与所述追踪标识;
所述微服务节点,还用于将所述服务调用日志发送给所述日志管理端;
所述日志管理端,用于根据多项所述服务调用日志对多个所述微服务节点间的服务调用链路进行追踪。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211043365.3A CN115580647A (zh) | 2022-08-29 | 2022-08-29 | 一种服务调用链路追踪方法、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211043365.3A CN115580647A (zh) | 2022-08-29 | 2022-08-29 | 一种服务调用链路追踪方法、系统及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115580647A true CN115580647A (zh) | 2023-01-06 |
Family
ID=84578650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211043365.3A Pending CN115580647A (zh) | 2022-08-29 | 2022-08-29 | 一种服务调用链路追踪方法、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115580647A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116760650A (zh) * | 2023-08-23 | 2023-09-15 | 深圳开源互联网安全技术有限公司 | 基于iast技术确认微服务调用中http参数污染传播链的方法 |
-
2022
- 2022-08-29 CN CN202211043365.3A patent/CN115580647A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116760650A (zh) * | 2023-08-23 | 2023-09-15 | 深圳开源互联网安全技术有限公司 | 基于iast技术确认微服务调用中http参数污染传播链的方法 |
CN116760650B (zh) * | 2023-08-23 | 2023-11-21 | 深圳开源互联网安全技术有限公司 | 基于iast技术确认微服务调用中http参数污染传播链的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109981349B (zh) | 调用链信息查询方法以及设备 | |
CN111506579B (zh) | 一种智能合约代码的生成方法、程序及设备 | |
US10540325B2 (en) | Method and device for identifying junk picture files | |
CN110515968B (zh) | 用于输出信息的方法和装置 | |
CN107644075B (zh) | 收集页面信息的方法和装置 | |
CN115580647A (zh) | 一种服务调用链路追踪方法、系统及电子设备 | |
CN113703996B (zh) | 基于用户和yang模型分组的访问控制方法、设备及介质 | |
CN112350890B (zh) | 报文处理方法、装置、服务器及存储介质 | |
WO2024093562A1 (zh) | 一种文档的访问方法、装置、设备、介质及程序产品 | |
CN111767161A (zh) | 远程调用深度识别方法、装置、计算机设备及可读存储介质 | |
CN111177269A (zh) | 基于结构化的区块链数据存储、获取方法及装置 | |
CN112380115A (zh) | 一种回归测试方法、装置、电子设备及存储介质 | |
CN113395319B (zh) | 网络故障感知的方法、系统、电子设备及存储介质 | |
CN114285774B (zh) | 流量录制方法、装置、电子设备及存储介质 | |
CN111884932B (zh) | 一种链路确定方法、装置、设备和计算机可读存储介质 | |
CN113064814A (zh) | 组件引用数据的处理方法及装置、存储介质及电子装置 | |
CN109656805B (zh) | 用于业务分析的代码链路的生成方法、装置及业务服务器 | |
CN113992664B (zh) | 一种集群通信的方法、相关装置及存储介质 | |
CN111479140B (zh) | 数据采集方法、设备、计算机设备和存储介质 | |
CN112579325A (zh) | 一种业务对象的处理方法、装置、电子设备和存储介质 | |
CN111078711A (zh) | 基于数据索引的区块链数据存储、获取方法及装置 | |
CN104408551A (zh) | 一种设备登记方法及系统 | |
CN113434399B (zh) | 业务节点日志的处理方法和装置、存储介质及电子装置 | |
CN112653595B (zh) | 芯片网络功能测试方法、装置、存储介质及设备 | |
CN115243248B (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 |