分布式系统调用链的确定方法和装置制造方法及图纸

技术编号:29261900 阅读:14 留言:0更新日期:2021-07-13 17:36
本发明专利技术公开了一种分布式系统调用链的确定方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:在接收用于调用目标服务的请求之后,生成对应于该次目标服务调用的跟踪标识;其中,目标服务由多个子服务节点共同提供,每一子服务节点包括至少一个方法节点;在调用任一子服务节点时,生成对应于该次调用的日志数据;在调用任一子服务节点中的任一方法节点时,生成对应于该次调用的日志数据;依据所述跟踪标识确定该次目标服务调用过程中生成的日志数据,利用确定的日志数据中的子服务节点标识和方法节点标识确定该次目标服务调用的调用链信息。该实施方式能够确定子服务粒度以及方法粒度的调用链信息。

【技术实现步骤摘要】
分布式系统调用链的确定方法和装置
本专利技术涉及计算机
,尤其涉及一种分布式系统调用链的确定方法和装置。
技术介绍
在分布式系统的面向服务架构SOA(Service-OrientedArchitecture)或者微服务架构中,需要对目标服务调用过程中的调用链信息进行跟踪以定位问题点,现有技术中缺少子服务(即组成目标服务的服务或应用程序)粒度以及方法(即服务或应用程序内提供的方法或函数)粒度的调用链跟踪方案。
技术实现思路
有鉴于此,本专利技术实施例提供一种分布式系统调用链的确定方法和装置,能够确定子服务粒度以及方法粒度的调用链信息。为实现上述目的,根据本专利技术的一个方面,提供了一种分布式系统调用链的确定方法。本专利技术实施例的分布式系统调用链的确定方法包括:在接收用于调用目标服务的请求之后,生成对应于该次目标服务调用的跟踪标识;其中,目标服务由多个子服务节点共同提供,每一子服务节点包括至少一个方法节点;在调用任一子服务节点时,生成对应于该次调用的日志数据;其中:在该子服务节点不是目标服务的入口节点时,生成的日志数据中含有所述跟踪标识、该子服务节点的标识以及该子服务节点的父节点标识;在调用任一子服务节点中的任一方法节点时,生成对应于该次调用的日志数据;其中,在该方法节点不是该子服务节点的入口方法节点时,生成的日志数据中含有所述跟踪标识、该子服务节点的标识、该方法节点的标识以及该方法节点的父节点标识;以及,依据所述跟踪标识确定该次目标服务调用过程中生成的日志数据,利用确定的日志数据中的子服务节点标识和方法节点标识确定该次目标服务调用的调用链信息。可选地,在调用任一子服务节点时,如果该子服务节点是目标服务的入口节点,则生成的日志数据中含有所述跟踪标识和该子服务节点的标识;在调用任一子服务节点中的任一方法节点时,如果该方法节点是该子服务节点的入口方法节点,则生成的日志数据中含有所述跟踪标识、该子服务节点的标识以及该方法节点的标识。可选地,所述子服务节点的父节点为子服务节点,所述方法节点的父节点为方法节点;该次目标服务调用的调用链信息为树形结构,包括:由所述多个子服务节点形成的调用链信息以及由每一子服务节点中的方法节点形成的调用链信息;任一次调用生成的日志数据中进一步含有该次调用的时长信息;所述方法进一步包括:将调用任一次子服务节点生成的日志数据中的调用时长信息增加到该次目标服务调用的调用链的该子服务节点中,将调用任一次方法节点生成的日志数据中的调用时长信息增加到该次目标服务调用的调用链的该方法节点中。可选地,所述方法进一步包括:在所述依据所述跟踪标识确定该次目标服务调用过程中生成的日志数据之前:获取当前采集周期内生成的日志数据,将生成的日志数据通过消息队列存储在数据库。可选地,所述方法进一步包括:从所述数据库中获取当前统计周期内多次目标服务调用的调用链信息,利用该调用链信息确定当前统计周期内每一子服务节点的平均调用时长以及每一方法节点的平均调用时长;在任一子服务节点的平均调用时长大于预设的第一时长阈值或者任一方法节点的平均调用时长大于预设的第二时长阈值时进行告警。可选地,所述方法进一步包括:从所述数据库中获取当前统计周期内多个服务的每一次调用的调用链信息,根据该调用链信息统计所述每一次调用涉及的每一子服务节点的调用次数以及每一方法节点的调用次数。可选地,所述消息队列包括Kafka,所述数据库包括弹性搜索引擎ES;所述子服务节点包括以下一种或多种:应用程序节点、文件系统节点、缓存系统节点、数据库节点。为实现上述目的,根据本专利技术的另一方面,提供了一种分布式系统调用链的确定装置。本专利技术实施例的分布式系统调用链的确定装置可包括:跟踪标识生成单元,用于:在接收用于调用目标服务的请求之后,生成对应于该次目标服务调用的跟踪标识;其中,目标服务由多个子服务节点共同提供,每一子服务节点包括至少一个方法节点;子服务日志生成单元,用于:在调用任一子服务节点时,生成对应于该次调用的日志数据;其中:在该子服务节点不是目标服务的入口节点时,生成的日志数据中含有所述跟踪标识、该子服务节点的标识以及该子服务节点的父节点标识;方法日志生成单元,用于:在调用任一子服务节点中的任一方法节点时,生成对应于该次调用的日志数据;其中,在该方法节点不是该子服务节点的入口方法节点时,生成的日志数据中含有所述跟踪标识、该子服务节点的标识、该方法节点的标识以及该方法节点的父节点标识;调用链跟踪单元,用于依据所述跟踪标识确定该次目标服务调用过程中生成的日志数据,利用确定的日志数据中的子服务节点标识和方法节点标识确定该次目标服务调用的调用链信息。为实现上述目的,根据本专利技术的又一方面,提供了一种电子设备。本专利技术的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术所提供的分布式系统调用链的确定方法。为实现上述目的,根据本专利技术的再一方面,提供了一种计算机可读存储介质。本专利技术的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本专利技术所提供的分布式系统调用链的确定方法。根据本专利技术的技术方案,上述专利技术中的一个实施例具有如下优点或有益效果:其一,在接收到客户端发送的调用目标服务的请求之后,生成全局唯一的跟踪节点来标识该次目标服务调用,并将跟踪节点存储在之后每一次调用生成的日志数据中;在对每一子服务节点进行调用时均会生成相应的日志数据,日志数据中可含有跟踪节点、子服务节点标识以及父节点标识。这样,在需要跟踪该次目标服务调用的调用链时,可依据跟踪节点查询相关的日志数据,并利用日志数据中的子服务节点标识以及父节点标识来组织整个调用链信息。另外,调用时生成的每一日志数据中还包含调用时长信息,组织调用链信息时可将日志数据中的调用时长信息写入相应节点。这样,可利用多次服务调用的调用链信息统计每一子服务节点的平均调用时长和调用次数,前者可用于判断该子服务节点的性能,后者可用于判断该子服务节点的重要性,二者可为后续的系统优化提供数据支持。其二,在实现子服务粒度的调用链跟踪的基础上,本专利技术进一步实现了方法粒度的调用链跟踪。具体地,在调用子服务节点中的任一方法节点时,可生成相应的日志数据来存储跟踪标识、子服务节点标识、方法节点标识、父节点标识以及调用时长信息,这样,在组织调用链信息时可根据日志数据中的上述信息得到每一子服务节点中的方法粒度的调用链信息,该调用链信息可用于统计每一方法节点的平均调用时长和调用次数,从而实现对方法节点性能和重要性的准确判断。通过上述设置,本专利技术能够对复杂服务的调用情况进行跟踪并梳理各节点之间复杂的嵌套关系,能够快速定位问题节点以及性能瓶颈节点,还可将文件系统、缓存系统和数据库作为子服务节点纳入调用链跟踪范围。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不本文档来自技高网...

【技术保护点】
1.一种分布式系统调用链的确定方法,其特征在于,包括:/n在接收用于调用目标服务的请求之后,生成对应于该次目标服务调用的跟踪标识;其中,目标服务由多个子服务节点共同提供,每一子服务节点包括至少一个方法节点;/n在调用任一子服务节点时,生成对应于该次调用的日志数据;其中:在该子服务节点不是目标服务的入口节点时,生成的日志数据中含有所述跟踪标识、该子服务节点的标识以及该子服务节点的父节点标识;/n在调用任一子服务节点中的任一方法节点时,生成对应于该次调用的日志数据;其中,在该方法节点不是该子服务节点的入口方法节点时,生成的日志数据中含有所述跟踪标识、该子服务节点的标识、该方法节点的标识以及该方法节点的父节点标识;以及/n依据所述跟踪标识确定该次目标服务调用过程中生成的日志数据,利用确定的日志数据中的子服务节点标识和方法节点标识确定该次目标服务调用的调用链信息。/n

【技术特征摘要】
1.一种分布式系统调用链的确定方法,其特征在于,包括:
在接收用于调用目标服务的请求之后,生成对应于该次目标服务调用的跟踪标识;其中,目标服务由多个子服务节点共同提供,每一子服务节点包括至少一个方法节点;
在调用任一子服务节点时,生成对应于该次调用的日志数据;其中:在该子服务节点不是目标服务的入口节点时,生成的日志数据中含有所述跟踪标识、该子服务节点的标识以及该子服务节点的父节点标识;
在调用任一子服务节点中的任一方法节点时,生成对应于该次调用的日志数据;其中,在该方法节点不是该子服务节点的入口方法节点时,生成的日志数据中含有所述跟踪标识、该子服务节点的标识、该方法节点的标识以及该方法节点的父节点标识;以及
依据所述跟踪标识确定该次目标服务调用过程中生成的日志数据,利用确定的日志数据中的子服务节点标识和方法节点标识确定该次目标服务调用的调用链信息。


2.根据权利要求1所述的确定方法,其特征在于,
在调用任一子服务节点时,如果该子服务节点是目标服务的入口节点,则生成的日志数据中含有所述跟踪标识和该子服务节点的标识;
在调用任一子服务节点中的任一方法节点时,如果该方法节点是该子服务节点的入口方法节点,则生成的日志数据中含有所述跟踪标识、该子服务节点的标识以及该方法节点的标识。


3.根据权利要求2所述的确定方法,其特征在于,
所述子服务节点的父节点为子服务节点,所述方法节点的父节点为方法节点;
该次目标服务调用的调用链信息为树形结构,包括:由所述多个子服务节点形成的调用链信息以及由每一子服务节点中的方法节点形成的调用链信息;
任一次调用生成的日志数据中进一步含有该次调用的时长信息;
以及,所述方法进一步包括:将调用任一次子服务节点生成的日志数据中的调用时长信息增加到该次目标服务调用的调用链的该子服务节点中,将调用任一次方法节点生成的日志数据中的调用时长信息增加到该次目标服务调用的调用链的该方法节点中。


4.根据权利要求3所述的确定方法,其特征在于,所述方法进一步包括:
在所述依据所述跟踪标识确定该次目标服务调用过程中生成的日志数据之前:获取当前采集周期内生成的日志数据,将生成的日志数据通过消息队列存储在数据库。


5.根据权利要求4所述的确定方法,其特征在于,所述方法进一步包括:
从所述...

【专利技术属性】
技术研发人员:何宽
申请(专利权)人:北京京东振世信息技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1