CN110262889A - 一种链路追踪方法及装置 - Google Patents

一种链路追踪方法及装置 Download PDF

Info

Publication number
CN110262889A
CN110262889A CN201910569709.6A CN201910569709A CN110262889A CN 110262889 A CN110262889 A CN 110262889A CN 201910569709 A CN201910569709 A CN 201910569709A CN 110262889 A CN110262889 A CN 110262889A
Authority
CN
China
Prior art keywords
micro services
services subsystem
link
subsystem
subchain
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
CN201910569709.6A
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.)
WeBank Co Ltd
Original Assignee
WeBank 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 WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN201910569709.6A priority Critical patent/CN110262889A/zh
Publication of CN110262889A publication Critical patent/CN110262889A/zh
Priority to PCT/CN2020/084553 priority patent/WO2020259003A1/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例涉及金融科技(Fintech)技术领域,公开了一种链路追踪方法及装置,其中方法包括:第一微服务子系统若确定调用第二微服务子系统,则根据第一链路标识、第一微服务子系统对应的第一链路的子链路标识、第一微服务子系统的标识和第二微服务子系统的标识生成用于链路追踪的目标数据。本发明实施例中,通过使用调用行为所属的链路标识、调用行为对应的子链路标识、调用方(即第一微服务子系统)的标识和被调用方(即第二微服务子系统)的标识生成目标数据,使得目标数据可以标识该次调用行为;如此,每个执行调用行为的微服务子系统均可以生成调用行为对应的目标数据,通过获取多个目标数据即可解析得到调用链路。

Description

一种链路追踪方法及装置
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及一种链路追踪方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,然而,由于金融行业具有安全性和实时性的要求,从而也对技术提出了更高的要求。金融科技领域中通常会涉及到大量的任务,比如,银行每天可能产生数千条任务甚至数万条任务,因此,采用合理的任务处理系统处理任务,对于保证金融科技领域中任务处理的准确性和实时性非常重要。
微服务系统是金融科技领域常用的一种任务处理系统,它可以将一个任务处理量较大的应用程序和/或服务系统拆分为数个甚至数十个任务处理量较小的微服务子系统,从而可以降低任务处理的耦合性,并可以提供更加灵活的服务支持能力。举例来说,某一种放款任务在将贷款放款至申请方的账户之前,可能需要先对申请方的账户收取一定的保证金,若采用传统的任务处理方式,则可能需要针对于该种放款任务设计专用的任务处理服务;然而,该种放款任务专用的任务处理服务并不能够适用于其它放款任务,比如直接放款任务。相应地,微服务系统中可以分别设置有收取保证金的微服务子系统以及放款的微服务子系统,如此,通过设置多个微服务子系统之间的自由调用关系,可以实现对多种放款任务进行处理。
综上所述,客户端设备从发出任务处理请求到接收到任务响应消息,可能会经历多个微服务子系统,而分析任务处理过程所经历的多个微服务子系统以及多个微服务子系统之间的调用顺序、对于定位性能瓶颈、进行性能调优是非常重要的。因此,目前亟需一种链路追踪方法,用以对任务处理过程中所调用的微服务子系统的链路进行追踪。
发明内容
本发明实施例提供一种链路追踪方法及装置,用以对任务处理过程中所调用的微服务子系统的链路进行追踪。
第一方面,本发明实施例提供的一种链路追踪方法,包括:
第一微服务子系统接收第一信息,所述第一信息中包括第一待处理任务,进而根据所述第一待处理任务,若确定调用第二微服务子系统处理第二待处理任务,则获取第一链路标识和所述第一微服务子系统对应的所述第一链路的子链路标识;进一步地,所述第一微服务子系统根据所述第一链路标识、所述第一微服务子系统对应的所述第一链路的子链路标识、所述第一微服务子系统的标识和所述第二微服务子系统的标识生成用于链路追踪的目标数据。
在上述设计中,第一微服务子系统在调用第二微服务子系统时,通过使用该次调用行为所属的链路标识、该次调用行为对应的子链路标识、调用方(即第一微服务子系统)的标识和被调用方(即第二微服务子系统)的标识生成目标数据,使得目标数据可以用于标识该次调用行为;如此,当任务处理完成后,每个执行调用的微服务子系统均可以生成对应的目标数据,通过获取多个微服务子系统对应的目标数据可以解析得到任务处理所经过的多次调用行为,进而可以根据多次调用行为得到调用链路。由此可知,上述设计可以对任务处理过程中所调用的微服务子系统的链路进行追踪。
在一种可能的设计中,所述第一微服务子系统获取第一链路标识和所述第一微服务子系统对应的所述第一链路的子链路标识之后,还向所述第二微服务子系统发送第一调用请求消息,所述第一调用请求消息中包括所述第二待处理任务、所述第一链路标识和所述第一微服务子系统对应的所述第一链路的子链路标识;进一步地,所述第一微服务子系统根据所述第二微服务子系统处理所述第二待处理任务的状态获取第一日志信息,并根据所述第一微服务子系统的标识和所述第一日志信息生成所述目标数据;其中,所述第一日志信息中包括所述第二待处理任务、所述第一链路标识、所述第一微服务子系统对应的所述第一链路的子链路标识和所述第二微服务子系统的标识,所述第二微服务子系统处理所述第二待处理任务的状态为处理完成状态或处理中断状态。
在上述设计中,通过在调用请求消息中添加链路标识和子链路标识,使得第二微服务子系统解析接收到的调用请求消息即可获取到链路标识和子链路标识,如此,多个微服务子系统之间可以通过调用请求消息中的链路标识关联同一个任务(可能是不同的处理阶段),并可以通过调用请求消息中的子链路标识关联调用顺序;且,通过拦截日志信息,微服务子系统可以通过解析日志信息获取此次调用的相关数据,比如链路标识、调用行为对应的子链路标识和被调用方的标识;也就是说,上述设计采用拦截调用请求消息以及拦截日志信息的方式可以简化链路追踪过程,并可以提高处理效率。
在一种可能的设计中,所述第一微服务子系统根据所述第一微服务子系统的标识和所述第一日志信息生成所述目标数据之后,还将所述目标数据存储在预设存储空间,所述预设存储空间用于存储至少一个微服务子系统生成的一条或多条用于链路追踪的目标数据。
在上述设计中,通过将调用行为对应的目标数据存储在预设存储空间,使得用户通过访问预设存储空间即可获取到某一任务的所有调用行为对应的目标数据,从而可以根据多个目标数据得到调用链路,用户的体验较好;且,预设存储空间可以由用户进行自定义,从而使得上述设计中的链路追踪方法更加满足实际需要,应用范围更广。
在一种可能的设计中,所述第一微服务子系统若确定所述第二微服务子系统处理所述第二待处理任务的状态为处理中断状态,则将所述预设存储空间中所述目标数据的状态标记为异常状态。
在上述设计中,通过在预设存储空间中标记调用行为对应的目标数据的状态,可以使得用户通过访问预设存储空间即可确定多次调用行为是否成功,实现过程较为简单,且可以提高用户的满意度。
在一种可能的设计中,所述第一调用请求中还包括所述第一链路标识和第三微服务子系统对应的所述第一链路的子链路标识;所述第一微服务子系统从所述第一调用请求中获取所述第一链路标识,并生成所述第一微服务子系统对应的所述第一链路的子链路标识;进一步地,所述第一微服务子系统根据所述第一链路标识、所述第三微服务子系统对应的所述第一链路的子链路标识、所述第一微服务子系统对应的所述第一链路的子链路标识、所述第一微服务子系统的标识以及所述第二微服务子系统的标识生成用于链路追踪的目标数据。
在上述设计中,在调用请求消息中包括子链路的标识时,通过使用该子链路的标识和当前生成的子链路的标识生成目标数据,可以通过这两个子链路的标识将两次相邻的调用行为关联起来;如此,在获取到多个调用行为对应的多个目标数据后,可以通过多个目标数据中的子链路的标识串联多个调用行为,得到调用链路。
第二方面,本发明实施例提供的一种链路追踪装置,所述装置包括:
收发模块,用于接收第一信息,所述第一信息中包括第一待处理任务;
获取模块,用于根据所述第一待处理任务,若确定调用第二微服务子系统处理第二待处理任务,则获取第一链路标识和第一微服务子系统对应的所述第一链路的子链路标识;
处理模块,用于根据所述第一链路标识、所述第一微服务子系统对应的所述第一链路的子链路标识、所述第一微服务子系统的标识和所述第二微服务子系统的标识生成用于链路追踪的目标数据。
在一种可能的设计中,所述收发模块还用于:向所述第二微服务子系统发送第一调用请求消息,所述第一调用请求消息中包括所述第二待处理任务、所述第一链路标识和所述第一微服务子系统对应的所述第一链路的子链路标识;进一步地,根据所述第二微服务子系统处理所述第二待处理任务的状态获取第一日志信息,并根据所述第一微服务子系统的标识和所述第一日志信息生成所述目标数据;其中,所述第一日志信息中包括所述第二待处理任务、所述第一链路标识、所述第一微服务子系统对应的所述第一链路的子链路标识和所述第二微服务子系统的标识,所述第二微服务子系统处理所述第二待处理任务的状态为处理完成状态或处理中断状态。
在一种可能的设计中,所述处理模块还用于:将所述目标数据存储在预设存储空间,所述预设存储空间用于存储至少一个微服务子系统生成的一条或多条用于链路追踪的目标数据。
在一种可能的设计中,所述处理模块还用于:若确定所述第二微服务子系统处理所述第二待处理任务的状态为处理中断状态,则将所述预设存储空间中所述目标数据的状态标记为异常状态。
在一种可能的设计中,所述第一调用请求中还包括所述第一链路标识和第三微服务子系统对应的所述第一链路的子链路标识;所述获取模块还用于:从所述第一调用请求中获取所述第一链路标识,并生成所述第一微服务子系统对应的所述第一链路的子链路标识;相应地,所述处理模块还用于:根据所述第一链路标识、所述第三微服务子系统对应的所述第一链路的子链路标识、所述第一微服务子系统对应的所述第一链路的子链路标识、所述第一微服务子系统的标识和所述第二微服务子系统的标识生成用于链路追踪的目标数据。
第三方面,本发明实施例提供的一种计算机可读存储介质,包括指令,当其在计算机的处理器上运行时,使得计算机的处理器执行如上述第一方面任意所述的方法。
第四方面,本发明实施例提供的一种计算机程序产品,当其在计算机上运行时,使得计算机执行如上述第一方面任意所述的方法。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种任务处理系统的架构示意图;
图2为本发明实施例提供的一种链路追踪方法对应的流程示意图;
图3为本发明实施例提供的一种链路追踪方法对应的交互流程示意图;
图4为本发明实施例提供的一种链路追踪装置的结构示意图;
图5为本发明实施例提供的一种终端设备的结构示意图;
图6为本发明实施例提供的一种后端设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
金融科技(Fintech)是指将信息技术融入金融领域后,为金融领域带来的一种新的创新科技,通过使用先进的信息技术辅助实现金融作业、交易执行以及金融系统改进,可以提升金融系统的处理效率、业务规模,并可以降低成本和金融风险。
金融科技领域中通常设置有多种业务系统,比如营销业务系统、贷款业务系统、保险业务系统等,每个业务系统可以负责执行与其相关的业务。以营销业务系统为例,一般来说,营销业务系统每天可以产生数千甚至数万笔业务,相应地,营销业务系统需要对大量的业务进行管理,比如,对每天的入账信息进行核查、对用户信息进行校验等。由此可知,金融科技领域每天可能需要处理多个业务系统产生的大量任务,由于金融科技领域所处理的任务数量较多、应用场景广泛,因此需要保证任务处理的准确性、安全性和不可丢失性。
图1为本发明实施例提供的一种任务处理系统的架构示意图,如图1所示,该系统中可以包括至少一个客户端设备(比如客户端设备101、客户端设备102和客户端设备103)和微服务系统110,其中,微服务系统110中可以设置有一个或多个微服务子系统,比如微服务子系统111、微服务子系统112、微服务子系统113和微服务子系统114。其中,至少一个客户端设备可以分别与一个或多个微服务子系统连接,比如可以通过有线方式实现连接,或者也可以通过无线方式实现连接,具体不作限定。
本发明实施例中,客户端设备101~客户端设备103可以为设置在不同业务系统中的客户端设备,比如客户端设备101为设置在营销业务系统中的客户端设备、客户端设备102为设置在贷款业务系统中的客户端设备、客户端设备103为设置在保险业务系统中的客户端设备;不同业务系统可以分别通过设置在各自业务系统中的客户端设备向微服务系统110发出任务处理请求。以客户端设备101为例,具体实施中,客户端设备101若确定需要调用某一微服务子系统(比如微服务子系统111)处理任务,则可以向微服务子系统111发出任务请求消息;相应地,该任务请求消息到达微服务子系统111后,微服务子系统111可以针对于该任务请求消息执行任务处理过程,且可以在得到任务处理结果后,向客户端设备101发送任务响应消息。
在一种可能的实现方式中,在微服务子系统111执行任务处理的过程中,微服务子系统111也可以调用其它微服务子系统。具体地说,微服务子系统111中可以设置有预设调用关系表,预设调用关系表可以用于指示微服务子系统111执行任务处理的过程中需要调用的一个或多个微服务子系统。表1为本发明实施例提供的一种可能的预设调用关系表的示意表。
表1:一种可能的预设调用关系表的示意
如表1所示,微服务子系统111的预设对应关系表中可以存储有至少一个预设判断条件与一个或多个微服务子系统的对应关系。比如,在微服务子系统111执行任务处理的过程中,若执行到某一判断阶段,且确定该次判断阶段的预设判断条件满足判断结果1,则可以调用微服务子系统112执行该次判断阶段的任务处理过程;或者,若确定该次判断阶段的预设判断条件满足判断结果2,则可以同时调用微服务子系统112和微服务子系统113执行该次判断阶段的任务处理过程;或者,若确定该次判断阶段的预设判断条件满足判断结果3,则可以调用微服务子系统114执行该次判断阶段的任务处理过程。
相应地,以调用微服务子系统112为例,当微服务子系统112执行完成该次判断阶段的任务处理过程后,可以将该次判断阶段的任务结果发送给微服务子系统111;如此,微服务子系统111可以根据该次判断阶段的任务处理结果执行下一阶段的任务处理过程。可以理解地,微服务子系统111在后续的任务处理过程中也可以调用其它微服务子系统,具体不作限定。
需要说明的是,本发明实施例中,微服务子系统可以是指服务器,或者也可以是指服务器中的进程;若微服务子系统为服务器,则一个或多个微服务子系统可以设置在同一个服务器中,或者也可以设置在不同的服务器中,具体不作限定。
本发明实施例提供了一种链路追踪方法,该方法的执行主体可以为任意一个微服务子系统,该方法可以对任务处理过程中所调用的微服务子系统的链路进行追踪。图2为本发明实施例提供的一种链路追踪方法对应的流程示意图,该方法包括:
步骤201,第一微服务子系统接收第一信息。
以第一微服务子系统为微服务子系统113为例,本发明实施例中,第一信息可以存在如下三种情形:
情形一
在情形一中,第一信息中可以仅包括第一待处理任务。
若第一信息中仅包括第一待处理任务,说明向第一微服务子系统发送第一信息的设备并未调用过任何其它微服务子系统(包括第一微服务子系统)。比如,第一信息可以为客户端设备101发送给微服务子系统113的。
情形二
在情形二中,第一信息中可以包括第一待处理任务、第一链路标识和第一子链标识。
若第一信息中包括第一待处理任务、第一链路标识和第一子链标识,说明向第一微服务子系统发送第一信息的设备正在调用微服务子系统,且该次调用为该待处理任务执行中的第一次调用过程,即在处理该待处理任务的过程中第一微服务子系统并未被其它微服务子系统调用。比如,若第一信息为微服务子系统111发送给微服务子系统113的,则微服务子系统111在调用微服务子系统113之前并未被其它微服务子系统调用;相应地,第一子链可以为微服务子系统111对应的子链标识,即微服务子系统111根据微服务子系统111调用微服务子系统113的行为生成的子链。
需要说明的是,此处仅考虑执行同一任务的过程,并不考虑执行不同任务的过程;也就是说,在情形二中,微服务子系统111可以在执行其它任务的过程中被其它微服务子系统调用,此处不作限定。
情形三
在情形三中,第一信息中可以包括第一待处理任务、第一链路标识、第一子链标识和第二子链标识。
若第一信息中包括第一待处理任务、第一链路标识、第一子链标识和第二子链标识,说明向第一微服务子系统发送第一信息的设备正在调用微服务子系统,且该次调用并非为该待处理任务执行中的第一次调用过程,即在处理该待处理任务的过程中第一微服务子系统被其它微服务子系统调用过。比如,若第一信息为微服务子系统111发送给微服务子系统113的,则微服务子系统111在调用微服务子系统113之前可能已经被微服务子系统114(和/或微服务子系统112,不作限定)调用。
相应地,第一子链标识可以为微服务子系统111可以为微服务子系统111对应的子链标识,即微服务子系统111调用微服务子系统113生成的,第二子链标识可以为微服务子系统114对应的子链标识,即微服务子系统114调用微服务子系统111生成的。
步骤202,第一微服务子系统根据第一待处理任务,若确定调用第二微服务子系统处理第二待处理任务,则获取第一链路标识和第一微服务子系统对应的第一链路的子链路标识;
具体实施中,微服务子系统113在获取到第一信息中的第一待处理任务后,在处理第一待处理任务的过程中,若确定需要调用其它微服务子系统(比如微服务子系统112)处理第二待处理任务,则可以查询第一信息确定第一信息中是否包括与链路相关的信息。
在情形二和情形三中,由于第一信息中包括与链路相关的信息,因此,微服务子系统113可以从第一信息中获取与链路相关的信息。具体地说,在情形二中,若第一信息为微服务子系统111发送给微服务子系统113的,则微服务子系统113可以获取第一链路标识和微服务子系统111对应的子链标识;相应地,在情形三中,若第一信息为微服务子系统111发送给微服务子系统113的,且微服务子系统111被微服务子系统114调用过,则微服务子系统113可以获取第一链路标识、微服务子系统111对应的子链标识和微服务子系统114对应的子链标识。微服务子系统113在获取到与链路相关的信息后,可以执行步骤203。
在情形一中,由于第一信息为客户端设备101发送给微服务子系统113的,因此第一信息中不包括与链路相关的信息,如此,微服务子系统113可以生成第一链路标识,并可以根据微服务子系统113调用微服务子系统112的行为生成该次调用行为对应的子链标识(即微服务子系统113对应的子链标识)。其中,第一链路标识和该次调用行为对应的子链标识可以由本领域技术人员根据经验进行设置,或者也可以由用户根据实际需要进行设置,具体不作限定。
在一个示例中,第一链路标识可以为客户端设备101发送给微服务系统110的任务请求消息中所携带的待处理任务的标识,相应地,该次调用行为对应的子链标识可以为根据该次调用行为的调用方(即微服务子系统113)和被调用方(即微服务子系统112)生成的。
在一种可能的实现方式中,微服务子系统113在生成第一链路标识和微服务子系统113对应的子链标识后,可以向微服务子系统112发送第一调用请求消息。其中,第一调用请求消息中可以包括第二待处理任务、第一链路标识和微服务子系统113对应的子链路标识。如此,微服务子系统112在接收到微服务子系统113发送的第一调用请求消息后,可以处理第二待处理任务,若得到第二待处理任务对应的处理结果,则可以将第二待处理任务对应的处理结果发送给微服务子系统113。
相应地,微服务子系统112在获取到第一调用请求消息中的第二待处理任务后,在处理第二待处理任务的过程中,若确定需要调用其它微服务子系统(比如微服务子系统111)处理第三待处理任务,则可以查询第一调用请求消息确定第一调用请求消息中是否包括与链路相关的信息。由于第一调用请求消息中包括第一链路标识和微服务子系统113对应的子链路标识,因此,微服务子系统112可以从第一调用请求消息中获取第一链路标识和微服务子系统113对应的子链路标识,并可以执行步骤203。
本发明实施例中,通过在调用请求消息中添加链路标识和子链路标识,使得第二微服务子系统解析接收到的调用请求消息即可获取到链路标识和子链路标识,如此,多个微服务子系统之间可以通过调用请求消息中的链路标识关联同一个任务(可能是不同的处理阶段),并可以通过调用请求消息中的子链路标识关联调用顺序;由此可知,本发明实施例使得微服务子系统拦截调用请求消息即可获取到链路标识和子链路标识,从而使得链路追踪的过程更加灵活,且实现较为方便。
步骤203,第一微服务子系统根据第一链路标识、第一微服务子系统对应的第一链路的子链路标识、第一微服务子系统的标识和第二微服务子系统的标识生成用于链路追踪的目标数据。
以微服务子系统113调用微服务子系统112为例,在一种可能的实现方式中,微服务子系统113在确定调用微服务子系统112时,可以根据第一链路标识、微服务子系统113对应的子链标识、微服务子系统113的标识和微服务子系统112的标识生成目标数据。
在另一种可能的实现方式中,微服务子系统113可以在接收到微服务子系统112发送的第二待处理任务的处理结果,或者确定微服务子系统112执行第二待处理任务异常时,根据日志文件和微服务子系统113的内存信息生成目标数据。具体地说,在调用微服务子系统112处理第二待处理任务的过程,微服务子系统113中的底层程序(比如org.apache.http.wire数据包下的代码逻辑)会执行打印日志的动作,本发明实施例可以在微服务子系统113中设置拦截器,拦截器可以拦截org.apache.http.wire数据包下的代码逻辑所执行的打印日志的动作,从而获取调用行为对应的日志文件;相应地,微服务子系统113可以将日志文件存储在微服务系统110中的预设位置,如此,日志文件可以被微服务系统110包括的微服务子系统111~114中的任一微服务子系统所获取。相应地,日志文件中可以包括第一调用请求消息(包括第一链路标识和微服务子系统113对应的子链标识)以及微服务子系统112的互联网协议(Internet Protocol,IP)地址,或者还可以包括微服务子系统112处理第二待处理任务得到的处理结果。如此,微服务子系统113通过拦截底层程序打印日志动作即可获取到调用微服务子系统112的调用行为对应的日志文件。
在一个示例中,微服务子系统113可以拦截底层程序(即org.apache.http.wire数据包下的代码逻辑)打印日志的动作,一般来说,org.apache.http.wire数据包下的代码逻辑可以按照预设周期执行打印日志的操作,比如每3ms执行一次打印操作,且每次打印操作中可以打印日志文件中的部分字段;如此,微服务子系统113可以通过拦截操作获取到被打印的日志文件。本发明实施例中,在每一次拦截操作中,微服务子系统113可以获取到固定数据量的信息,比如第一次拦截操作可以从org.apache.http.wire数据包下的代码逻辑中获取到第一调用请求消息,第二次拦截操作可以从org.apache.http.wire数据包下的代码逻辑中获取到微服务子系统112的IP地址,第三次拦截操作可以从org.apache.http.wire数据包下的代码逻辑中获取到第二待处理任务对应的处理结果,或者第三次拦截操作可以从org.apache.http.wire数据包下的代码逻辑中获取到处理第二待处理任务的异常信息(比如调用超时、调用中断等);如此,通过多次拦截操作可以从org.apache.http.wire数据包下的代码逻辑中获取第一调用请求消息、微服务子系统112的IP地址、第二待处理任务对应的处理结果或者处理第二待处理任务的异常信息,从而可以通过组装这些信息得到被打印的完整日志文件,相应地,日志文件中的这些信息后续可以用于得到目标数据。
本发明实施例中,微服务子系统113中可以设置有预设日志级别,如此,微服务子系统113可以从底层程序(即org.apache.http.wire数据包下的代码逻辑)打印的多条日志文件中拦截与预设日志级别匹配的日志文件。其中,日志的级别可以为ERROR级别、WARN级别、INFO级别和DEBUG级别中的任意一种,预设日志级别可以由本领域技术人员根据经验进行设置,或者也可以由用户设置,具体不作限定。作为一种示例,本发明实施例可以设置预设日志级别为DEBUG级别,如此,由于org.apache.http.wire数据包下的代码逻辑拦截的日志文件的日志级别均为DEBUG级别,因此,微服务子系统113可以获取org.apache.http.wire数据包下的代码逻辑拦截的全部日志文件。
进一步地,在获取到日志文件后,微服务子系统113可以对日志文件中的信息进行预处理,预处理可以包括正则化处理、截取处理(比如删除无关字符)、格式转换处理(比如转化为java格式)等。且,微服务子系统113还可以从微服务子系统113的内存空间中获取微服务子系统113的标识、微服务子系统113的IP地址等信息,进而可以根据日志文件、微服务子系统113的标识以及微服务子系统113的IP地址生成目标数据。
本发明实施例中,通过拦截底层程序(即org.apache.http.wire数据包下的代码逻辑)打印日志的动作,微服务子系统可以获取到被打印的日志文件,从而可以通过解析日志文件获取此次调用的相关数据,比如链路标识、调用行为对应的子链路标识和被调用方的标识;也就是说,本发明实施例采用拦截日志文件的方式可以简化链路追踪过程,并可以提高处理效率。
进一步地,微服务子系统113生成目标数据的过程可以在预设数据库中执行,预设数据库可以为设置在微服务子系统113中的用于存储中间文件的空间。如此,微服务子系统113可以将每次拦截操作所获取到的信息存储在预设数据库中,当确定在预设数据库中生成了目标数据后,微服务子系统113可以将目标数据存储在预设存储空间;其中,预设存储空间可以设置在微服务系统110中,并可以被微服务系统110中的任意一个微服务子系统所获取。
具体实施中,微服务子系统113确定生成目标数据的方式可以有多种,在一种可能的实现方式中,微服务子系统113若接收到微服务子系统112发送的第二待处理任务的处理结果,则可以确定在预设数据库中生成了目标数据;如此,微服务子系统113可以将目标数据存储在预设存储空间中。在另一种可能的实现方式中,微服务子系统113若在第一预设时长内一直未接收到微服务子系统112发送的第二待处理任务的处理结果,则可以确定调用微服务子系统112的过程中断(出现异常);如此,微服务子系统113可以将预设数据库中当前已存储的信息存储在预设存储空间中,并可以在预设存储空间中标记为异常状态。
在一个示例中,微服务子系统113若确定预设数据库存储目标数据的时长超过第二预设时长,则可以将目标数据从预设数据库中删除,从而可以节省内存空间,提高数据处理效率。
本发明实施例中,第一预设时长和第二预设时长可以由本领域技术人员根据经验进行设置,或者也可以由用户根据实际需要确定,具体不作限定。
本发明实施例中,通过将调用行为对应的目标数据存储在预设存储空间,使得用户通过访问预设存储空间即可获取到某一任务的所有调用行为对应的目标数据,从而可以根据多个目标数据得到调用链路,用户的体验较好;且,通过在预设存储空间中标记调用行为对应的目标数据的状态,可以使得用户通过访问预设存储空间即可确定多次调用行为是否成功,实现过程较为简单,且可以提高用户的满意度。
下面分别从情形一~情形三描述微服务子系统113生成的目标数据。
在情形一中,微服务子系统113生成的目标数据可以包括第一链路标识、微服务子系统113对应的子链标识、微服务子系统113的标识、微服务子系统112的标识、第二待处理任务以及微服务子系统112处理第二待处理任务的状态。其中,微服务子系统112处理第二待处理任务的状态可以为微服务子系统112处理第二待处理任务得到的参数,或者可以为微服务子系统112处理第二待处理任务的异常信息,比如异常类型、异常状态、异常时间信息等。
在情形二中,微服务子系统113生成的目标数据可以包括第一链路标识、微服务子系统113对应的子链标识、微服务子系统111对应的子链标识、微服务子系统113的标识、微服务子系统112的标识、第二待处理任务以及微服务子系统112处理第二待处理任务的状态。
在情形三中,由于微服务子系统113调用微服务子系统112,且在调用之前,微服务子系统113被微服务子系统111调用(比如处理第三待处理任务),微服务子系统111被微服务子系统114调用(比如处理第四待处理任务),因此,微服务子系统111生成的目标数据可以包括第一链路标识、微服务子系统111对应的子链标识、微服务子系统114对应的子链标识、微服务子系统111的标识、微服务子系统113的标识、第三待处理任务以及微服务子系统113处理第二待处理任务的状态。相应地,微服务子系统113生成的目标数据可以包括第一链路标识、微服务子系统113对应的子链标识、微服务子系统111对应的子链标识、微服务子系统113的标识、微服务子系统112的标识、第二待处理任务以及微服务子系统112处理第二待处理任务的状态。
在一个示例中,用户若想要获取执行第一待处理任务的过程中执行调用的微服务子系统生成的一个或多个目标数据,则可以通过客户端设备101(或者也可以为客户端设备102或客户端设备103,不作限定)向微服务系统110发送请求消息;如此,微服务系统110可以将预设存储空间中与第一待处理任务的过程相关的所有目标数据显示给用户,比如可以通过微信、钉钉、企业微信、邮箱等方式推送给用户,或者也可以直接显示在客户端设备101的屏幕上,具体不作限定。
本发明实施例中,在调用请求消息中包括子链路的标识时,通过使用该子链路的标识和当前生成的子链路的标识生成目标数据,可以通过这两个子链路的标识将两次相邻的调用行为关联起来;如此,在获取到多个调用行为对应的多个目标数据后,可以通过多个目标数据中的子链路的标识串联多个调用行为,得到调用链路。
基于图1所示意的系统架构,本发明实施例提供的一种处理待处理任务的可能场景为:
第一阶段,客户端设备101向微服务子系统111发送任务请求消息,任务请求消息中包括待处理任务(比如待处理任务a)。
第一阶段,微服务子系统111接收到客户端设备101发送的待处理任务a后,若确定执行待处理任务a的过程中需要调用微服务子系统112处理待处理任务a1,则可以向微服务子系统112发送第一调用请求消息;其中,第一调用请求消息中可以包括待处理任务a1
第二阶段,微服务子系统112接收到微服务子系统111发送的第一调用请求消息后,可以解析得到待处理任务a1;若确定执行待处理任务a1的过程中需要调用微服务子系统113处理待处理任务a2,则可以向微服务子系统113发送第二调用请求消息;其中,第二调用请求消息中可以包括待处理任务a2
第三阶段,微服务子系统113接收到微服务子系统112发送的第二调用请求消息后,可以解析得到待处理任务a2,若确定执行待处理任务a2的过程中需要调用微服务子系统114处理待处理任务a3,则可以向微服务子系统114发送第三调用请求消息;其中,第三调用请求消息中可以包括待处理任务a3
第四阶段,微服务子系统114接收到微服务子系统113发送的第三调用请求消息后,可以解析得到待处理任务a3,若确定执行待处理任务a3的过程中无需调用其它微服务子系统,则可以将处理待处理任务a3得到的处理结果发送给微服务子系统113。
第五阶段,微服务子系统113接收到微服务子系统114发送的待处理任务a3对应的处理结果后,可以使用待处理任务a3对应的处理结果继续处理待处理任务a2,若确定继续处理待处理任务a2的过程中无需调用其它微服务子系统,则可以将处理待处理任务a2得到的处理结果发送给微服务子系统112。
第六阶段,微服务子系统112接收到微服务子系统113发送的待处理任务a2对应的处理结果后,可以使用待处理任务a2对应的处理结果继续处理待处理任务a1,若确定继续处理待处理任务a1的过程中无需调用其它微服务子系统,则可以将处理待处理任务a1得到的处理结果发送给微服务子系统111。
第七阶段,微服务子系统111接收到微服务子系统112发送的待处理任务a1对应的处理结果后,可以使用待处理任务a1对应的处理结果继续处理待处理任务a,若确定继续处理待处理任务a的过程中无需调用其它微服务子系统,则可以将处理待处理任务a得到的处理结果发送给客户端设备101。
为了便于理解,下面描述一个具体的示例:若待处理任务a为获取某一订单号对应的客户姓名,而微服务子系统111中设置有订单号与手机号的对应关系,微服务子系统112中设置有手机号与身份证号的对应关系,微服务子系统113中设置有身份证号与家庭住址的对应关系,微服务子系统114中设置有家庭住址与姓名的对应关系;则微服务子系统111在接收到待处理任务a后,可以从微服务子系统111中查询得到与该订单号对应的目标手机号,进而调用微服务子系统112查询得到与目标手机号对应的目标身份证号,而微服务子系统112又调用微服务子系统113查询得到与目标身份证号对应的目标家庭住址,且微服务子系统113又调用微服务子系统114查询得到与目标家庭住址对应的目标姓名。如此,微服务子系统114查询得到目标姓名后,可以依次通过微服务子系统113、微服务子系统112发送给微服务子系统111,以使微服务子系统111发送给客户端设备101。
下面基于该场景描述图2所示的链路追踪方法的具体实现过程。
图3为本发明实施例提供的一种该场景下链路追踪方法对应的交互流程图,如图3所示,该方法包括:
步骤301,客户端设备101向微服务子系统111发送任务请求消息。
本发明实施例中,客户端设备101若确定需要调用微服务子系统111处理待处理任务a,则可以向微服务子系统111发送任务请求消息,任务请求消息中包括待处理任务a。具体地说,若客户端设备101与微服务子系统111通过有线方式连接,则可以通过网线、光纤等将任务请求消息发送给微服务子系统111,若客户端设备101与微服务子系统111通过无线方式连接,则可以通过蓝牙、声波等将任务请求消息发送给微服务子系统111。
步骤302,微服务子系统111若确定调用微服务子系统112,则生成链路标识和子链标识b1
具体地说,微服务子系统111处理待处理任务a的过程中,若确定需要调用微服务子系统112处理待处理任务a1,则可以解析任务请求消息确定任务请求消息中是否包括与链路相关的信息。由于任务请求消息中不包括与链路相关的信息,因此,微服务子系统111可以生成链路标识和微服务子系统111对应的子链标识(比如b1)。其中,链路标识可以与待处理任务a对应,微服务子系统111对应的子链标识b1可以与微服务子系统111调用微服务子系统112处理待处理任务a1的行为对应。
在一个示例中,链路标识可以为待处理任务a的标识,即链路标识可以为a,如此,链路标识a可以用于指示该条调用链路为处理待处理任务a的过程中所调用的微服务子系统生成的链路。
步骤303,微服务子系统111将调用请求消息发送给微服务子系统112。
具体实施中,微服务子系统111可以根据待处理任务a1、链路标识a和微服务子系统111对应的子链标识b1生成第一调用请求消息。其中,链路标识a和微服务子系统111对应的子链标识b1可以设置在第一调用请求消息的头文件中,如此,微服务子系统112可以通过解析第一调用请求消息的头文件获取链路标识a和微服务子系统111对应的子链标识b1,而无需解析整个第一调用请求消息,从而可以提高数据处理的效率。
本发明实施例中,微服务子系统111将第一调用请求消息发送给微服务子系统112的方式可以有多种,在一种可能的实现方式中,微服务子系统111可以与微服务子系统112通过有线方式或无线方式连接,如此,微服务子系统111可以通过有线方式或无线方式直接将第一调用请求消息发送给微服务子系统112。在另一种可能的实现方式中,微服务系统110中可以设置有公共网络,微服务子系统111~微服务子系统114中的任意一个微服务系统可以访问公共网络;如此,微服务子系统111可以将第一调用请求消息发送至公共网络中,而微服务子系统112可以从公共网络中下载第一调用请求消息。
步骤304,微服务子系统112若确定调用微服务子系统113,则生成子链标识b2
具体地说,微服务子系统112接收到微服务子系统111发送的第一调用请求消息后,可以启动待处理任务a1的处理过程,若确定处理待处理任务a1的过程需要调用微服务子系统113处理待处理任务a2,则可以解析第一调用请求消息的头文件确定第一调用请求消息中是否包括与链路相关的信息。
相应地,微服务子系统112可以从第一调用请求消息的头文件中解析得到链路标识a和微服务子系统111对应的子链标识b1,并可以生成微服务子系统112对应的子链标识(比如b2)。其中,微服务子系统112对应的子链标识b2可以与微服务子系统112调用微服务子系统113处理待处理任务a2的行为对应。
步骤305,微服务子系统112将调用请求消息发送给微服务子系统113。
具体实施中,微服务子系统112可以根据待处理任务a2、链路标识a、微服务子系统111对应的子链标识b1、微服务子系统112对应的子链标识b2生成第二调用请求消息。其中,链路标识a、微服务子系统111对应的子链标识b1和微服务子系统112对应的子链标识b2可以设置在第二调用请求消息的头文件中。进一步地,微服务子系统112可以将第二调用请求消息发送给微服务子系统113。
步骤306,微服务子系统113若确定调用微服务子系统114,则生成子链标识b3
具体地说,微服务子系统113接收到微服务子系统112发送的第二调用请求消息后,可以启动待处理任务a2的处理过程,若确定处理待处理任务a2的过程需要调用微服务子系统114处理待处理任务a3,则可以解析第二调用请求消息的头文件确定第二调用请求消息中是否包括与链路相关的信息。
相应地,微服务子系统113可以从第二调用请求消息的头文件中解析得到链路标识a、微服务子系统111对应的子链标识b1、微服务子系统112对应的子链标识b2,并可以生成微服务子系统113对应的子链标识(比如b3)。其中,微服务子系统112对应的子链标识b3可以与微服务子系统113调用微服务子系统114处理待处理任务a3的行为对应。
步骤307,微服务子系统113将调用请求消息发送给微服务子系统114。
具体实施中,微服务子系统113可以根据待处理任务a2、链路标识a、微服务子系统112对应的子链标识b2和微服务子系统113对应的子链标识b3生成第三调用请求消息。其中,链路标识a、微服务子系统112对应的子链标识b2和微服务子系统113对应的子链标识b3可以设置在第三调用请求消息的头文件中。进一步地,微服务子系统113可以将第三调用请求消息发送给微服务子系统114。
步骤308,微服务子系统114执行待处理任务a3,得到待处理任务a3对应的处理结果。
具体地说,微服务子系统114接收到微服务子系统113发送的第三调用请求消息后,可以启动待处理任务a3的处理过程,由于在待处理任务a3的处理过程中不需要调用其它微服务子系统,因此,微服务子系统114可以处理得到待处理任务a3的处理结果。
步骤309,微服务子系统114将待处理任务a3对应的处理结果发送给微服务子系统113。
本发明实施例中,若微服务子系统114在预设时间内执行得到待处理任务a3对应的处理结果,则可以成功将待处理任务a3对应的处理结果发送给微服务子系统113;若微服务子系统114在预设时间内未能执行得到待处理任务a3对应的处理结果,则说明微服务子系统114执行待处理任务a3的过程出现异常,比如微服务子系统114的网络故障、硬件损坏、内存不足等均可以导致执行待处理任务a3的过程出现异常。
步骤310,微服务子系统113生成目标数据,并执行待处理任务a2,得到待处理任务a2对应的处理结果。
具体实施中,微服务子系统113在向微服务子系统114发送第三调用请求消息后,可以按照预设周期拦截底层程序(即org.apache.http.wire数据包下的代码逻辑)完成打印日志的动作,如此,微服务子系统113可以通过拦截org.apache.http.wire数据包下的代码逻辑打印日志的动作获取等级不低于预设日志等级的日志文件;相应地,若在预设时长之内获取到待处理任务a3对应的处理结果,则说明当前已获取到完整的日志文件;如此,微服务子系统113可以根据日志文件和微服务系统113的IP地址、标识等生成微服务子系统113对应的目标数据。其中,微服务子系统113拦截到的日志文件中可以包括第三调用请求消息中的内容(比如待处理任务a3、链路标识a、微服务子系统112对应的子链标识b2和微服务子系统113对应的子链标识b3)、微服务系统114的IP地址以及待处理任务a3对应的处理结果。
相应地,微服务子系统113若在预设时长之内未获取到待处理任务a3对应的处理结果,则说明微服务子系统114处理待处理任务a3的过程出现异常;如此,微服务子系统113可以根据日志文件、异常信息和微服务系统113的IP地址、标识等生成微服务子系统113对应的目标数据。其中,日志文件中可以包括第三调用请求消息中的内容(比如待处理任务a3、链路标识a、微服务子系统112对应的子链标识b2和微服务子系统113对应的子链标识b3)、微服务系统114的IP地址、待处理任务a3对应的处理结果。且,微服务子系统113可以将微服务子系统113对应的目标数据存储在预设存储空间中。
在一个示例中,表2为本发明实施例提供的一种目标数据的示意表。
表2:一种目标数据的示意
链路标识 前子链标识 子链标识 调用方 被调用方
a b<sub>2</sub> b<sub>3</sub> 微服务子系统113 微服务子系统114
a b<sub>1</sub> b<sub>2</sub> 微服务子系统112 微服务子系统113
a b<sub>1</sub> 微服务子系统111 微服务子系统112
微服务子系统113对应的目标数据可以如表2第二行所示,微服务子系统113对应的目标数据中可以包括链路标识a、前子链标识b2、子链标识b1、调用方的标识“微服务子系统113”和被调用方的标识“微服务子系统114”。
进一步地,微服务子系统113可以根据待处理任务a3对应的处理结果继续处理待处理任务a2,若在预设时间内执行得到待处理任务a2对应的处理结果,则可以成功将待处理任务a2对应的处理结果发送给微服务子系统112;若微服务子系统113在预设时间内未能执行得到待处理任务a2对应的处理结果,则说明微服务子系统113执行待处理任务a2的过程出现异常。
步骤311,微服务子系统113将待处理任务a2对应的处理结果发送给微服务子系统112。
步骤312,微服务子系统112生成目标数据,并执行待处理任务a1,得到待处理任务a1对应的处理结果。
步骤313,微服务子系统112将待处理任务a1对应的处理结果发送给微服务子系统111。
步骤314,微服务子系统111生成目标数据,并执行待处理任务a,得到待处理任务a对应的处理结果。
本发明实施例中,步骤311~步骤314的具体实现过程可以参照步骤309~步骤310,此处不再赘述。
相应地,微服务子系统112对应的目标数据可以如表2第三行所示,微服务子系统112对应的目标数据中可以包括链路标识a、前子链标识b1、子链标识b2、调用方的标识“微服务子系统112”和被调用方的标识“微服务子系统113”;微服务子系统111对应的目标数据可以如表2第四行所示,微服务子系统111对应的目标数据中可以包括链路标识a、子链标识b1、调用方的标识“微服务子系统111”和被调用方的标识“微服务子系统112”。
步骤315,微服务子系统111将待处理任务a对应的处理结果发送给客户端设备101。
进一步地,微服务子系统111可以根据待处理任务a1对应的处理结果继续处理待处理任务a,若在预设时间内执行得到待处理任务a对应的处理结果,则可以成功将待处理任务a对应的处理结果发送给客户端设备101。如此,客户端设备101在接收到待处理任务a对应的处理结果后,若要获取执行待处理任务a的过程中调用的微服务子系统链路,则可以访问预设存储空间,获取到表2所示意的目标数据,根据表2第二行~第四行所示的三条目标数据,可以得到调用链路:微服务子系统111——微服务子系统112——微服务子系统113——微服务子系统114。
相应地,若客户端设备101在预设时间内未接收到微服务子系统111发送的待处理任务a对应的处理结果,则说明微服务子系统111执行待处理任务a的过程出现异常,如此,客户端设备101可以生成告警信息,并可以将告警信息显示给用户,比如可以通过微信、钉钉、企业微信、邮件等发送给用户,或者也可以通过屏幕显示给用户,或者还可以语音播报给用户,具体不作限定。
本发明的上述实施例中,第一微服务子系统接收第一信息,第一信息中包括第一待处理任务,第一微服务子系统根据第一待处理任务,若确定调用第二微服务子系统处理第二待处理任务,则获取第一链路标识和第一微服务子系统对应的第一链路的子链路标识;进一步地,第一微服务子系统根据第一链路标识、第一微服务子系统对应的第一链路的子链路标识、第一微服务子系统的标识和第二微服务子系统的标识生成用于链路追踪的目标数据。本发明实施例中,第一微服务子系统在调用第二微服务子系统时,通过使用该次调用行为所属的链路标识、该次调用行为对应的子链路标识、调用方(即第一微服务子系统)的标识和被调用方(即第二微服务子系统)的标识生成目标数据,使得目标数据可以用于标识该次调用行为;也就是说,当任务处理完成后,每个执行调用的微服务子系统均可以生成对应的目标数据,如此,通过获取多个目标数据可以解析得到多次调用行为对应的调用链路;由此可知,本发明实施例可以对任务处理过程中所调用的微服务子系统的链路进行追踪。
针对上述方法流程,本发明实施例还提供一种链路追踪装置,该装置的具体内容可以参照上述方法实施。
图4为本发明实施例提供的一种链路追踪装置的结构示意图,包括:
收发模块401,用于接收第一信息,所述第一信息中包括第一待处理任务;
获取模块402,用于根据所述第一待处理任务,若确定调用第二微服务子系统处理第二待处理任务,则获取第一链路标识和第一微服务子系统对应的所述第一链路的子链路标识;
处理模块403,用于根据所述第一链路标识、所述第一微服务子系统对应的所述第一链路的子链路标识、所述第一微服务子系统的标识和所述第二微服务子系统的标识生成用于链路追踪的目标数据。
可选地,所述收发模块401还用于:
向所述第二微服务子系统发送第一调用请求消息,所述第一调用请求消息中包括所述第二待处理任务、所述第一链路标识和所述第一微服务子系统对应的所述第一链路的子链路标识;
根据所述第二微服务子系统处理所述第二待处理任务的状态获取第一日志信息,并根据所述第一微服务子系统的标识和所述第一日志信息生成所述目标数据;其中,所述第一日志信息中包括所述第二待处理任务、所述第一链路标识、所述第一微服务子系统对应的所述第一链路的子链路标识和所述第二微服务子系统的标识,所述第二微服务子系统处理所述第二待处理任务的状态为处理完成状态或处理中断状态。
可选地,所述处理模块403还用于:
将所述目标数据存储在预设存储空间,所述预设存储空间用于存储至少一个微服务子系统生成的一条或多条用于链路追踪的目标数据。
可选地,所述处理模块403还用于:
若确定所述第二微服务子系统处理所述第二待处理任务的状态为处理中断状态,则将所述预设存储空间中所述目标数据的状态标记为异常状态。
可选地,所述第一调用请求中还包括所述第一链路标识和第三微服务子系统对应的所述第一链路的子链路标识;
所述获取模块402还用于:从所述第一调用请求中获取所述第一链路标识,并生成所述第一微服务子系统对应的所述第一链路的子链路标识;
所述处理模块403还用于:根据所述第一链路标识、所述第三微服务子系统对应的所述第一链路的子链路标识、所述第一微服务子系统对应的所述第一链路的子链路标识、所述第一微服务子系统的标识和所述第二微服务子系统的标识生成用于链路追踪的目标数据。
从上述内容可以看出:本发明的上述实施例中,第一微服务子系统接收第一信息,第一信息中包括第一待处理任务,第一微服务子系统根据第一待处理任务,若确定调用第二微服务子系统处理第二待处理任务,则获取第一链路标识和第一微服务子系统对应的第一链路的子链路标识;进一步地,第一微服务子系统根据第一链路标识、第一微服务子系统对应的第一链路的子链路标识、第一微服务子系统的标识和第二微服务子系统的标识生成用于链路追踪的目标数据。本发明实施例中,第一微服务子系统在调用第二微服务子系统时,通过使用该次调用行为所属的链路标识、该次调用行为对应的子链路标识、调用方(即第一微服务子系统)的标识和被调用方(即第二微服务子系统)的标识生成目标数据,使得目标数据可以用于标识该次调用行为;也就是说,当任务处理完成后,每个执行调用的微服务子系统均可以生成对应的目标数据,如此,通过获取多个目标数据可以解析得到多次调用行为对应的调用链路;由此可知,本发明实施例可以对任务处理过程中所调用的微服务子系统的链路进行追踪。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机的处理器上运行时,使得计算机的处理器执行如图2任一方面所述的链路追踪方法。
基于同一发明构思,本发明实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行如图2任一方面所述的链路追踪方法。
基于相同的技术构思,本发明实施例提供了一种终端设备,如图5所示,包括至少一个处理器1101,以及与至少一个处理器连接的存储器1102,本发明实施例中不限定处理器1101与存储器1102之间的具体连接介质,图5中处理器1101和存储器1102之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本发明实施例中,存储器1102存储有可被至少一个处理器1101执行的指令,至少一个处理器1101通过执行存储器1102存储的指令,可以执行前述的链路追踪方法中所包括的步骤。
其中,处理器1101是终端设备的控制中心,可以利用各种接口和线路连接终端设备的各个部分,通过运行或执行存储在存储器1102内的指令以及调用存储在存储器1102内的数据,从而实现数据处理。可选的,处理器1101可包括一个或多个处理单元,处理器1101可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理运维人员下发的指令。可以理解的是,上述调制解调处理器也可以不集成到处理器1101中。在一些实施例中,处理器1101和存储器1102可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器1101可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合链路追踪方法的实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器1102作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1102可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器1102是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器1102还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于相同的技术构思,本发明实施例提供了一种后端设备,如图6所示,包括至少一个处理器1201,以及与至少一个处理器连接的存储器1202,本发明实施例中不限定处理器1201与存储器1202之间的具体连接介质,图6中处理器1201和存储器1202之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本发明实施例中,存储器1202存储有可被至少一个处理器1201执行的指令,至少一个处理器1201通过执行存储器1202存储的指令,可以执行前述的链路追踪方法中所包括的步骤。
其中,处理器1201是后端设备的控制中心,可以利用各种接口和线路连接后端设备的各个部分,通过运行或执行存储在存储器1202内的指令以及调用存储在存储器1202内的数据,从而实现数据处理。可选的,处理器1201可包括一个或多个处理单元,处理器1201可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、应用程序等,调制解调处理器主要对接收到的指令进行解析以及对接收到的结果进行解析。可以理解的是,上述调制解调处理器也可以不集成到处理器1201中。在一些实施例中,处理器1201和存储器1202可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器1201可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合链路追踪方法的实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器1202作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1202可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器1202是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器1202还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (12)

1.一种链路追踪方法,其特征在于,所述方法包括:
第一微服务子系统接收第一信息,所述第一信息中包括第一待处理任务;
所述第一微服务子系统根据所述第一待处理任务,若确定调用第二微服务子系统处理第二待处理任务,则获取第一链路标识和所述第一微服务子系统对应的所述第一链路的子链路标识;
所述第一微服务子系统根据所述第一链路标识、所述第一微服务子系统对应的所述第一链路的子链路标识、所述第一微服务子系统的标识和所述第二微服务子系统的标识生成用于链路追踪的目标数据。
2.根据权利要求1所述的方法,其特征在于,所述第一微服务子系统获取第一链路标识和所述第一微服务子系统对应的所述第一链路的子链路标识之后,还包括:
所述第一微服务子系统向所述第二微服务子系统发送第一调用请求消息,所述第一调用请求消息中包括所述第二待处理任务、所述第一链路标识和所述第一微服务子系统对应的所述第一链路的子链路标识;
所述第一微服务子系统根据所述第二微服务子系统处理所述第二待处理任务的状态获取第一日志信息,并根据所述第一微服务子系统的标识和所述第一日志信息生成所述目标数据;其中,所述第一日志信息中包括所述第二待处理任务、所述第一链路标识、所述第一微服务子系统对应的所述第一链路的子链路标识和所述第二微服务子系统的标识,所述第二微服务子系统处理所述第二待处理任务的状态为处理完成状态或处理中断状态。
3.根据权利要求2所述的方法,其特征在于,所述第一微服务子系统根据所述第一微服务子系统的标识和所述第一日志信息生成所述目标数据之后,还包括:
所述第一微服务子系统将所述目标数据存储在预设存储空间,所述预设存储空间用于存储至少一个微服务子系统生成的一条或多条用于链路追踪的目标数据。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述第一微服务子系统若确定所述第二微服务子系统处理所述第二待处理任务的状态为处理中断状态,则将所述预设存储空间中所述目标数据的状态标记为异常状态。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述第一调用请求中还包括所述第一链路标识和第三微服务子系统对应的所述第一链路的子链路标识;
所述方法还包括:
所述第一微服务子系统从所述第一调用请求中获取所述第一链路标识,并生成所述第一微服务子系统对应的所述第一链路的子链路标识;
所述第一微服务子系统根据所述第一链路标识、所述第三微服务子系统对应的所述第一链路的子链路标识、所述第一微服务子系统对应的所述第一链路的子链路标识、所述第一微服务子系统的标识以及所述第二微服务子系统的标识生成用于链路追踪的目标数据。
6.一种链路追踪装置,其特征在于,所述装置包括:
收发模块,用于接收第一信息,所述第一信息中包括第一待处理任务;
获取模块,用于根据所述第一待处理任务,若确定调用第二微服务子系统处理第二待处理任务,则获取第一链路标识和第一微服务子系统对应的所述第一链路的子链路标识;
处理模块,用于根据所述第一链路标识、所述第一微服务子系统对应的所述第一链路的子链路标识、所述第一微服务子系统的标识和所述第二微服务子系统的标识生成用于链路追踪的目标数据。
7.根据权利要求6所述的装置,其特征在于,所述收发模块还用于:
向所述第二微服务子系统发送第一调用请求消息,所述第一调用请求消息中包括所述第二待处理任务、所述第一链路标识和所述第一微服务子系统对应的所述第一链路的子链路标识;
根据所述第二微服务子系统处理所述第二待处理任务的状态获取第一日志信息,并根据所述第一微服务子系统的标识和所述第一日志信息生成所述目标数据;其中,所述第一日志信息中包括所述第二待处理任务、所述第一链路标识、所述第一微服务子系统对应的所述第一链路的子链路标识和所述第二微服务子系统的标识,所述第二微服务子系统处理所述第二待处理任务的状态为处理完成状态或处理中断状态。
8.根据权利要求7所述的装置,其特征在于,所述处理模块还用于:
将所述目标数据存储在预设存储空间,所述预设存储空间用于存储至少一个微服务子系统生成的一条或多条用于链路追踪的目标数据。
9.根据权利要求8所述的装置,其特征在于,所述处理模块还用于:
若确定所述第二微服务子系统处理所述第二待处理任务的状态为处理中断状态,则将所述预设存储空间中所述目标数据的状态标记为异常状态。
10.根据权利要求6至9中任一项所述的装置,其特征在于,所述第一调用请求中还包括所述第一链路标识和第三微服务子系统对应的所述第一链路的子链路标识;
所述获取模块还用于:从所述第一调用请求中获取所述第一链路标识,并生成所述第一微服务子系统对应的所述第一链路的子链路标识;
所述处理模块还用于:根据所述第一链路标识、所述第三微服务子系统对应的所述第一链路的子链路标识、所述第一微服务子系统对应的所述第一链路的子链路标识、所述第一微服务子系统的标识和所述第二微服务子系统的标识生成用于链路追踪的目标数据。
11.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机的处理器上运行时,使得计算机的处理器执行如权利要求1至5任一项所述的方法。
12.一种计算机程序产品,其特征在于,当其在计算机上运行时,使得计算机执行如权利要求1至5任一项所述的方法。
CN201910569709.6A 2019-06-27 2019-06-27 一种链路追踪方法及装置 Pending CN110262889A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910569709.6A CN110262889A (zh) 2019-06-27 2019-06-27 一种链路追踪方法及装置
PCT/CN2020/084553 WO2020259003A1 (zh) 2019-06-27 2020-04-13 一种链路追踪方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910569709.6A CN110262889A (zh) 2019-06-27 2019-06-27 一种链路追踪方法及装置

Publications (1)

Publication Number Publication Date
CN110262889A true CN110262889A (zh) 2019-09-20

Family

ID=67922537

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910569709.6A Pending CN110262889A (zh) 2019-06-27 2019-06-27 一种链路追踪方法及装置

Country Status (2)

Country Link
CN (1) CN110262889A (zh)
WO (1) WO2020259003A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110830577A (zh) * 2019-11-08 2020-02-21 深圳前海环融联易信息科技服务有限公司 服务请求调用追踪方法、装置、计算机设备及存储介质
CN110943858A (zh) * 2019-11-21 2020-03-31 中国联合网络通信集团有限公司 一种故障定位方法及装置
CN111984346A (zh) * 2020-08-12 2020-11-24 八维通科技有限公司 微服务环境中调用链追踪的方法、系统、装置及存储介质
WO2020259003A1 (zh) * 2019-06-27 2020-12-30 深圳前海微众银行股份有限公司 一种链路追踪方法及装置
CN112532478A (zh) * 2020-11-23 2021-03-19 华人运通(上海)云计算科技有限公司 链路关系追踪方法、系统、查看方法、装置、设备及插件
CN112671882A (zh) * 2020-12-18 2021-04-16 上海安畅网络科技股份有限公司 一种基于微服务的同城双活系统和方法
CN112988405A (zh) * 2019-12-02 2021-06-18 中国移动通信集团浙江有限公司 微服务自动降级方法、装置及计算设备
CN113992664A (zh) * 2020-07-09 2022-01-28 腾讯科技(深圳)有限公司 一种集群通信的方法、相关装置及存储介质
CN115129491A (zh) * 2022-07-08 2022-09-30 盐城金堤科技有限公司 微服务请求消息跟踪方法、生成方法、装置、介质及设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708719B (zh) * 2015-08-04 2020-08-04 阿里巴巴集团控股有限公司 业务功能的测试方法和装置
CN106603270A (zh) * 2016-11-10 2017-04-26 广州酷狗计算机科技有限公司 分布式系统中调用链路的追踪方法及装置
CN106790718A (zh) * 2017-03-16 2017-05-31 北京搜狐新媒体信息技术有限公司 服务调用链路分析方法及系统
CN107135276A (zh) * 2017-06-28 2017-09-05 北京中电普华信息技术有限公司 一种微服务架构下的全链路监控方法、装置和系统
CN109726016A (zh) * 2017-10-30 2019-05-07 阿里巴巴集团控股有限公司 一种用于分布式系统的链路追踪方法、装置和系统
CN110262889A (zh) * 2019-06-27 2019-09-20 深圳前海微众银行股份有限公司 一种链路追踪方法及装置

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020259003A1 (zh) * 2019-06-27 2020-12-30 深圳前海微众银行股份有限公司 一种链路追踪方法及装置
CN110830577A (zh) * 2019-11-08 2020-02-21 深圳前海环融联易信息科技服务有限公司 服务请求调用追踪方法、装置、计算机设备及存储介质
CN110943858A (zh) * 2019-11-21 2020-03-31 中国联合网络通信集团有限公司 一种故障定位方法及装置
CN112988405A (zh) * 2019-12-02 2021-06-18 中国移动通信集团浙江有限公司 微服务自动降级方法、装置及计算设备
CN112988405B (zh) * 2019-12-02 2023-12-26 中国移动通信集团浙江有限公司 微服务自动降级方法、装置及计算设备
CN113992664A (zh) * 2020-07-09 2022-01-28 腾讯科技(深圳)有限公司 一种集群通信的方法、相关装置及存储介质
CN111984346A (zh) * 2020-08-12 2020-11-24 八维通科技有限公司 微服务环境中调用链追踪的方法、系统、装置及存储介质
CN111984346B (zh) * 2020-08-12 2023-10-27 八维通科技有限公司 微服务环境中调用链追踪的方法、系统、装置及存储介质
CN112532478A (zh) * 2020-11-23 2021-03-19 华人运通(上海)云计算科技有限公司 链路关系追踪方法、系统、查看方法、装置、设备及插件
CN112532478B (zh) * 2020-11-23 2022-05-03 华人运通(上海)云计算科技有限公司 链路关系追踪方法、系统、查看方法、装置、设备
CN112671882A (zh) * 2020-12-18 2021-04-16 上海安畅网络科技股份有限公司 一种基于微服务的同城双活系统和方法
CN112671882B (zh) * 2020-12-18 2022-03-01 上海安畅网络科技股份有限公司 一种基于微服务的同城双活系统和方法
CN115129491A (zh) * 2022-07-08 2022-09-30 盐城金堤科技有限公司 微服务请求消息跟踪方法、生成方法、装置、介质及设备
CN115129491B (zh) * 2022-07-08 2024-03-05 盐城天眼察微科技有限公司 微服务请求消息跟踪方法、生成方法、装置、介质及设备

Also Published As

Publication number Publication date
WO2020259003A1 (zh) 2020-12-30

Similar Documents

Publication Publication Date Title
CN110262889A (zh) 一种链路追踪方法及装置
CN108459939A (zh) 一种日志收集方法、装置、终端设备及存储介质
CN108427581A (zh) 系统微服务化方法及终端设备
CN108920948A (zh) 一种反欺诈流式计算装置及方法
CN107862425B (zh) 风控数据采集方法、设备、系统及可读存储介质
CN113536054A (zh) 一种基于图数据的业务监控方法、装置、设备及存储介质
CN112286776A (zh) 一种微服务链路追踪的方法及系统
CN113052688A (zh) 基于区块链的信用卡办理方法及装置
CN114745295A (zh) 数据采集方法、装置、设备和可读存储介质
CN109587351B (zh) 一种呼叫测试方法、装置、设备及存储介质
CN114706827A (zh) 一种交易链路拓扑自动生成方法及装置
CN109409948B (zh) 交易异常检测方法、装置、设备及计算机可读存储介质
CN113360210A (zh) 数据对账方法、装置、计算机设备和存储介质
CN110111188A (zh) 业务办理方法及设备
CN115016821A (zh) 回调数据的灰度分发方法、装置、计算机设备和存储介质
CN113177843A (zh) 基于区块链的跨行贷款业务处理方法及装置
CN110851446B (zh) 数据表的生成方法、装置、计算机设备及存储介质
WO2022036165A1 (en) Universal blockchain data model
CN113051135A (zh) 一种应用线程池的监控方法及线程池监控装置
JP6070338B2 (ja) 多階層システムに含まれる処理システムの分類装置及び多階層システムに含まれる処理システムの分類プログラム並びに多階層システムに含まれる処理システムの分類方法
CN101482945A (zh) 一种会计管理过程余额账本收、发、存查询统计的实现方法
CN111679799A (zh) 凭证打印方法及装置
CN111339089A (zh) 一种应用于区块链的数据存储与获取方法及装置
CN106326225B (zh) 页面数据采集方法及装置
CN108038783A (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