CN113169900B - 分布式系统中追踪业务执行过程的方法和装置 - Google Patents
分布式系统中追踪业务执行过程的方法和装置 Download PDFInfo
- Publication number
- CN113169900B CN113169900B CN201880099904.0A CN201880099904A CN113169900B CN 113169900 B CN113169900 B CN 113169900B CN 201880099904 A CN201880099904 A CN 201880099904A CN 113169900 B CN113169900 B CN 113169900B
- Authority
- CN
- China
- Prior art keywords
- service
- record
- identifier
- node
- service node
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
Abstract
本申请公开了分布式系统中追踪业务执行过程的方法和装置,涉及数据处理技术领域,有助于定位业务执行过程中出现的故障。方法包括:当当前业务节点发起目标业务,且在执行目标业务时需要跳到下一跳业务节点执行与目标业务相关的服务时,生成包括目标业务标识、当前业务节点标识和第一记录标识的第一记录;将第一记录标识发送至下一跳业务节点。当当前业务节点接收到上一跳业务节点发送的上一跳业务节点生成的第二记录标识,且确定当前业务节点没有完成目标业务时,生成包括第二记录标识、第三记录标识和当前业务节点标识的第三记录;将第三记录标识发送至下一跳业务节点,下一跳业务节点所执行的服务与当前业务节点所执行的服务相关。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及分布式系统(distributed system)中追踪业务执行过程的方法和装置。
背景技术
分布式系统包括多个节点,同一节点上可以部署不同的服务,同一服务可以部署在不同的节点上。在分布式系统中,通常需要通过执行多个节点上部署的不同服务来实现一个业务。由于相同的服务可能部署在多个节点上,因此执行一个业务时可能存在多条路径。如果一次业务执行过程的可用路径较多,和/或一次业务执行过程的路径上包括的业务节点的个数较多,则一旦业务执行过程出现故障(即哪个节点执行的过程中出现故障或调用哪个服务时出现故障等),故障定位将变得十分困难。为此,需要提供追踪业务执行过程的技术方案。
发明内容
本申请提供了分布式系统中追踪业务执行过程的方法和装置,有助于获得业务执行过程的路径。
第一方面,本申请提供了一种分布式系统中追踪业务执行过程的方法,应用于分布式系统中的当前业务节点,该方法包括:当当前业务节点发起目标业务,且在执行目标业务时需要跳到当前业务节点的下一跳业务节点执行与目标业务相关的服务时,生成第一记录,第一记录包括:目标业务标识、当前业务节点标识和第一记录标识,第一记录标识用于标识第一记录;将第一记录标识发送至下一跳业务节点。当当前业务节点接收到当前业务节点的上一跳业务节点发送的上一跳业务节点生成的第二记录的第二记录标识,且确定当前业务节点没有完成目标业务时,生成第三记录,第三记录包括:第二记录标识、第三记录的第三记录标识和当前业务节点标识;将第三记录标识发送至当前业务节点的下一跳业务节点,下一跳业务节点所执行的服务与当前业务节点所执行的服务相关。基于此,如果执行本次目标业务执行过程的每个业务节点均按照该技术方案生成记录,则可以为分布式系统中的分析节点获得本次目标业务执行过程的路径创造条件,也就是说,分析节点根据这些记录可以获得本次目标业务执行过程的路径(即实现对业务执行过程的追踪)。
在一种可能的设计中,确定当前业务节点没有完成目标业务,包括:如果当前业务节点在执行与目标业务相关的服务时,需要调用下一跳业务节点中的服务,则确定当前业务节点没有完成目标业务;或者,如果当前业务节点在执行与目标业务相关的服务后,需要把执行与目标业务相关的服务的过程中产生的数据返回给下一跳业务节点,则确定当前业务节点没有完成目标业务。其中,所返回的数据可以包括本节点执行与目标业务相关的服务的过程中所产生的数据,可选的还包括本节点执行与目标业务相关的服务的过程中因调用其他节点上的服务而由该其他节点产生的数据。
在一种可能的设计中,该方法还包括:当确定当前业务节点完成了目标业务时,将第三记录中的第三记录标识设为预设值如0,且确定不用发送第三记录标识至下一跳业务节点。其中,当前业务节点完成了目标业务,可以理解为:当前业务节点不需要调用下一跳业务节点中的服务,且在执行与目标业务相关的服务后不需要把执行与目标业务相关的服务的过程中产生的数据返回给下一跳业务节点。可选的,还确定不用发送根标识至下一跳业务节点。
在一种可能的设计中,第一记录和第三记录都还包括根标识,根标识由发起目标业务的业务节点生成,用于标识本次执行与目标业务相关的服务的业务节点所生成的记录。该情况下,该方法还包括:当当前业务节点生成第一记录或第三记录后,将根标识发送至下一跳业务节点。这样,有助于分析节点基于根标识识别出本次执行与目标业务相关的服务的业务节点所生成的记录。
在一种可能的设计中,第三记录中限定了第二记录标识与第三记录标识的顺序。这样,有助于分析节点识别第三记录中的第二记录标识和第三记录标识。
在一种可能的设计中,第一记录和第三记录都还包括服务标识。其中,第一记录包括的服务标识用于标识当前业务节点所执行的与目标业务相关的服务。如果当前业务节点在执行与目标业务相关的服务时,需要调用下一跳业务节点中的服务,则第三记录包括的服务标识为当前业务节点所执行的服务的服务标识;如果当前业务节点已执行完与目标业务相关的服务,则第三记录包括的服务标识用于标识当前业务节点与目标业务相关的服务已经完成。这样,有助于实现分析节点获取本次执行与目标业务相关的服务的先后顺序,从而有助于在该业务执行过程出现故障时,确定导致该故障的服务,即实现故障定位。
在一种可能的设计中,第一记录还包括第一次调用标识,第一次调用标识用于标识第一记录是本次执行目标业务的过程中生成的第一条记录。这样,有助于分析节点识别第一记录和第三记录。
第二方面,本申请提供了一种分布式系统中追踪业务执行过程的方法,应用于分布式系统中分析节点,该方法包括:获取执行与目标业务相关的服务的业务节点生成的第一记录和至少一个第三记录,第一记录包括目标业务标识、生成第一记录的业务节点标识和第一记录标识,第三记录包括第二记录标识、第三记录标识和生成第三记录的业务节点标识;第二记录标识用于标识生成第三记录的业务节点的上一跳业务节点生成的第二记录;根据第一记录中的第一记录标识以及至少一个第三记录中的第二记录标识和第三记录标识,对第一记录和至少一个第三记录进行排序;根据第一记录和至少一个第三记录的排列顺序,获取每条记录中的业务节点标识的排列顺序,该排列顺序为本次执行目标业务的路径。如此,即实现了对业务执行过程的追踪。
在一种可能的设计中,如果排列顺序中相邻两个记录包括两个第三记录,则在前的记录包括的第三记录标识与在后的记录包括的第二记录标识相同;如果排列顺序中相邻两个记录包括第一记录和第三记录,则在前的记录包括的第一记录标识与在后的记录包括的第二记录标识相同。
在一种可能的设计中,第三记录中限定了第二记录标识与第三记录标识的顺序;该方法还包括:根据第三记录中的第二记录标识与第三记录标识的顺序,识别第三记录中的第二记录标识和第三记录标识。
在一种可能的设计中,第一记录和至少一个第三记录都包括根标识,根标识是发起目标业务的业务节点生成的,用于标识本次执行与目标业务相关的服务的业务节点所生成的记录;获取执行与目标业务相关的服务的业务节点生成的第一记录和至少一个第三记录,包括:获取包括根标识的至少两个记录;将至少两个记录中的包括第一次调用标识的记录作为第一记录,并将其他记录作为至少一个第三记录;第一次调用标识用于标识第一记录是本次执行目标业务生成的第一条记录。
在一种可能的设计中,该方法还包括:根据排列顺序获取每条记录中的服务标识,获得本次执行与目标业务相关的服务的先后顺序;其中,第一记录包括的服务标识用于标识当前业务节点所执行的与目标业务相关的服务;第三记录包括的服务标识为当前业务节点所执行的服务的服务标识,或者用于标识当前业务节点与目标业务相关的服务已经完成。
在一种可能的设计中,该方法还包括:根据排列顺序,确定本次执行目标业务的过程是否异常。
在一种可能的设计中,根据排列顺序,确定本次执行目标业务的过程是否异常,包括:按照排列顺序中的各记录的顺序依次将第一记录包括的第一记录标识、每个第三记录包括的第二记录标识和第三记录标识,进行异或操作;如果异或操作的结果是0,则判定本次执行目标业务的过程无异常;如果异或操作的结果是1,则判定本次执行目标业务的过程异常。
在一种可能的设计中,该方法还包括:如果本次执行目标业务的过程无异常,则记录本次执行与目标业务相关的服务的先后顺序与目标业务标识之间的映射关系。这样,有助于在后续执行目标业务的过程中,提供正确的执行与目标业务相关的服务的先后顺序,从而有助于当后续执行目标业务的过程出现故障时,进行故障定位。
在一种可能的设计中,该方法还包括:如果本次执行目标业务的过程异常,则对比已记录的目标业务相关的服务的先后顺序和获得的本次执行与目标业务相关的服务的先后顺序,定位出导致本次执行目标业务的过程异常的服务。
上述第二方面以及第二方面任一种可能的设计的有益效果的描述均可以参考上述第一方面,或上述第一方面相应的可能的设计,此处不再赘述。
第三方面,本申请提供了一种当前业务节点,用于执行第一方面或第一方面任一种可能的设计中的方法的各个模块。
第四方面,本申请提供了一种分析节点,用于执行第二方面或第二方面任一种可能的设计中的方法的各个模块。
第五方面,本申请提供了一种分布式系统中追踪业务执行过程的装置,该装置包括存储器和处理器,存储器用于用于存储计算机执行指令,该装置运行时,该处理器执行该存储器中的计算机执行指令以利用该装置中的硬件资源执行第一方面或第一方面任一种可能的设计中的方法的操作步骤。该装置具体可以是当前业务节点或者芯片。
第六方面,本申请提供了一种分布式系统中追踪业务执行过程的装置,该装置包括存储器和处理器,存储器用于用于存储计算机执行指令,该装置运行时,该处理器执行该存储器中的计算机执行指令以利用该装置中的硬件资源执行第二方面或第二方面任一种可能的设计中的方法的操作步骤。该装置具体可以是分析节点或者芯片。
第七方面,本申请还提供了一种计算机可读存储介质,其上储存有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可能的设计中任一种可能的方法的操作步骤。
第八方面,本申请还提供了一种计算机可读存储介质,其上储存有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述第二方面或第二方面任一种可能的设计中任一种可能的方法的操作步骤。
第九方面,本申请还提供了一种计算机程序产品,当其在计算机上运行时,使得第一方面或第一方面任一种可能的设计中的任一种可能的方法的操作步骤。
第十方面,本申请还提供了一种计算机程序产品,当其在计算机上运行时,使得第二方面或第二方面任一种可能的设计中的任一种可能的方法的操作步骤。
可以理解的是,上述提供的任一种当前业务节点、分析节点、装置、计算机可读存储介质或计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。
附图说明
图1为传统技术中的一种分布式系统的结构示意图;
图2为传统技术中的一种业务执行过程的示意图;
图3为本申请实施例提供的一种分布式系统的架构示意图;
图4~图6为本申请实施例提供的一种分布式系统中追踪业务执行过程的方法的示意图;
图7为本申请实施例提供的一种业务执行过程的示意图;
图8为本申请实施例提供的一种当前业务节点的结构示意图;
图9为本申请实施例提供的一种分析节点的结构示意图;
图10为本申请实施例提供的一种分布式系统中追踪业务执行过程的装置的硬件结构示意图。
具体实施方式
本申请实施例中的术语“至少一个”包括一个或多个。“多个”是指两个或两个以上。例如,A、B和C中的至少一个,包括:单独存在A、单独存在B、同时存在A和B、同时存在A和C、同时存在B和C,以及同时存在A、B和C。在本申请的描述中,除非另有说明,本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。“多个”是指两个或多于两个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
如图1所示,为一种分布式系统的结构示意图。图1所示的分布式系统包括控制节点10和至少两个业务节点20。控制节点10用于控制多个业务节点20执行目标业务相关的服务。在物理实现上,控制节点10与业务节点20可以是独立的设备,或者,控制节点10的控制功能可以集成在某一个业务节点20上。为了方便描述,本申请实施例中均是以控制节点10与业务节点20是独立的设备为例进行说明。
执行目标业务的过程可以认为是一个或多个业务节点20执行多个服务实现,通过服务调用将这些服务联系起来。本申请实施例中,将执行目标业务的过程中需要调用的服务称为目标业务相关的服务。一般而言,这些服务必须运行在同一设备中。而远程过程调用(remote procedure call,RPC)机制提供了一种方法,可以将不同服务分散到不同的设备中,也就是说,允许一个设备中的服务调用另一个设备中的服务。服务可以通过函数实现,当然不限于此。
在分布式系统的部署阶段,通常可以在每个业务节点20中部署本节点所支持的服务。每个业务节点20可以向控制节点10注册本节点所支持的服务。具体的,通过业务节点20与控制节点10之间的信息交互,使得控制节点10中存储每个业务节点20标识与其所支持的服务的服务标识之间的映射关系,或者每个服务标识与支持该服务的业务节点20标识之间的映射关系等。其中,每个业务节点20可以支持一个或多个服务。多个业务节点20可以支持同一服务。可选地,控制节点10中还可以存储业务标识与该业务的入口服务的服务标识之间的映射关系。一个业务的入口服务是指执行该业务的过程中所执行的第一个服务。
分布式系统在部署阶段所部署的各个业务节点20所支持的服务是可以更新的。对于业务节点20来说,可以在业务执行之前或者业务执行的过程中,通过与控制节点10进行信息交互,获取并存储本节点执行本节点所支持的服务时需要调用的服务的服务标识与该服务所在的业务节点20标识之间的映射关系。下文中以此为例进行说明。在此统一说明,下文不再赘述。
在分布式系统的业务执行阶段,控制节点10接收到客户端发送的执行目标业务的请求消息后,可以根据业务标识与业务的入口服务的服务标识之间的映射关系,确定目标业务的入口服务的服务标识。然后,根据服务标识与支持该服务的业务节点20标识之间的映射关系,确定支持目标业务的入口服务的业务节点20。如果支持目标业务的入口服务的业务节点20有一个,则将该业务节点20作为发起目标业务的业务节点20;如果支持目标业务的入口服务的业务节点20有多个,则从该多个业务节点20中选择(如基于负载均衡原则选择)一个业务节点20作为发起目标业务的业务节点20。接着,向发起目标业务的业务节点20转发该请求消息。接收到该请求消息的业务节点20发起目标业务,即开始执行本节点所支持的目标业务相关的服务。
发起目标业务的业务节点20在执行目标业务的过程中,可以调用另一业务节点20上部署的与目标业务相关的服务。该另一业务节点20在执行与目标业务相关的服务时,可以调用其他业务节点20上部署的与目标业务相关的服务。依此类推,直至某一业务节点20执行与目标业务相关的服务后不需要调用其他业务节点20上的服务时,说明该业务节点20执行完本节点与目标业务相关的服务。
通常,一个业务节点20在执行完本节点与目标业务相关的服务后,需要向调用该服务的业务节点20返回执行该服务的过程中产生的数据。接收到该数据的业务节点20执行完本节点与目标业务相关的服务后,需要向调用该服务的业务节点20返回执行该服务的过程中产生的数据。以此类推,直至发起目标业务的业务节点20接收到其所调用的服务所在的业务节点20返回的数据为止。
至此,一次执行目标业务的过程结束。
执行目标业务的过程中,根据调用关系依次执行的与目标业务相关的服务所在的业务节点20构成执行目标业务的路径。由于相同的服务可能部署在多个业务节点20上,因此执行目标业务时存在多条路径。每条路径可以包括调用路径和返回路径。调用路径和返回路径的特征如下:
调用路径中的一个业务节点20在执行目标业务相关的服务的过程中需要调用该业务节点20的下一跳业务节点上的与目标业务相关的服务。并且,调用路径上的一个业务节点20在需要调用该业务节点20的下一跳业务节点20时,可以向该业务节点20的下一跳业务节点20发送该业务节点20执行本节点的与目标业务服务的过程中产生的、且用于调用该下一跳业务节点20所支持的与目标业务相关的服务的数据。
返回路径中的一个业务节点20在执行完本节点与目标业务相关的服务后,需要向该业务节点20的下一跳业务节点20(即调用该服务的业务节点)返回执行该业务节点与目标业务相关的服务的过程中产生的数据,具体包括本节点执行与目标业务相关的服务的过程中所产生的数据,可选的还包括本节点执行与目标业务相关的服务的过程中因调用其他节点上的服务而由该其他节点产生的数据。
调用路径上的各业务节点20执行与目标业务相关的服务的过程中所得到的部分或全部数据,可以作为本次执行目标业务的过程的执行结果。
需要说明的是,上文所描述的部署阶段所部署的各个业务节点20所支持的服务,以及业务执行阶段所执行的步骤等均是示例,其不对本申请实施例所适用的部署阶段和业务执行阶段所执行的步骤构成限定。
以下通过一个具体示例对业务执行过程进行说明。如图2所示,为一种业务执行过程的示意图。图2中是以目标业务是查询用户订单信息的业务为例进行说明的。其中,查询用户订单信息的业务的入口服务是用户服务,执行用户服务的过程中需要调用订单服务,执行订单服务的过程中需要调用产品服务。
业务节点调用用户服务可以实现以下功能:根据多个用户ID与用户信息(如用户的联系方式、用户的订单ID等)之间的映射关系,确定某一用户ID对应的用户信息。该业务节点所确定的用户信息为该业务节点执行用户服务所得到的数据。
业务节点调用订单服务可以实现以下功能:根据订单ID与订单信息(如订单的生成时间、订单包括的产品ID等)之间的映射关系,确定某一订单ID对应的订单信息。该业务节点所确定的订单信息为该业务节点执行订单服务所得到的数据。
业务调用产品服务可以实现以下功能,根据产品ID与产品信息(如产品的单价等)之间的映射关系,确定某一产品ID对应的产品信息。该业务节点所确定的产品信息为该业务节点执行产品服务所得到的数据。
如图2所示,假设分布式系统包括业务节点1~6,且业务节点1支持用户服务,业务节点2~4均支持订单服务,业务节点5~6均支持产品服务,那么,业务执行过程可以包括如下步骤:
步骤1、业务节点1接收到控制节点发送的请求消息,该请求消息包括用户1的身份标识号(identity,ID),则发起查询用户的订单信息的业务,具体的,根据用户1的ID调用用户服务获得用户1的用户信息。假设所获得的用户信息包括用户1的联系方式和用户1的订单ID,那么,业务节点1根据该订单ID确定需要调用其他业务节点上的订单服务。假设业务节点1从支持订单服务的业务节点2~4中选择业务节点2作为业务节点1的下一跳业务节点,则业务节点1向业务节点2发送该订单ID。
步骤2、业务节点2根据接收到订单ID执行订单服务,获得该订单ID对应的订单信息。假设所获得的订单信息包括订单的生成时间和产品ID,那么,业务节点2根据产品ID确定需要调用其他业务节点上的产品服务。假设业务节点2从支持产品服务的业务节点5~6中选择业务节点6作为业务节点2的下一跳业务节点,则业务节点2向业务节点6发送该产品ID。
步骤3、业务节点6根据接收到产品ID执行产品服务,获得该产品ID对应的产品信息。假设所获得的产品信息包括产品单价,那么,业务节点6将产品单价返回给业务节点2。
步骤4、业务节点2将接收到业务节点6所发送的产品单价,以及本节点在本次执行查询用户订单信息的业务的过程中获得的其他数据(即步骤2中所获取的产品ID和订单的生成时间)返回给业务节点1。
步骤5、业务节点1将所接收到的业务节点2所发送的产品单价、产品ID和订单的生成时间,以及本节点在本次执行目标业务的过程中获得的其他数据(即步骤1中所获取的订单ID和用户1的联系方式)作为用户1的订单信息。
至此,本次执行查询用户订单信息的业务的过程结束。
本示例中,本次执行查询用户订单信息的业务的过程的路径为:业务节点1、2、6、2、1依次排列构成的路径。其中,调用路径为业务节点1、2依次排列构成的路径,返回路径为业务节点6、2、1依次排列构成的路径。
对于同一个业务来说,不同次业务执行过程的路径可以相同也可以不同。例如,基于图2所示的示例,一次业务执行过程的路径可以为:业务节点1、2、6、2、1依次排列构成的路径,另一次业务执行过程的路径可以为:业务节点1、3、6、3、1依次排列构成的路径。
如果一次业务执行过程的可用路径较多,和/或一次业务执行过程的路径上包括的业务节点的个数较多,则一旦业务执行过程出现故障,故障定位将变得十分困难。
基于此,本申请实施例提供了一种分布式系统追踪业务执行过程的技术方案。
如图3所示,为本申请实施例提供的一种分布式系统的架构示意图。图3所示的分布式系统包括:至少两个业务节点20,以及分析节点30。
业务节点20,用于执行目标业务相关的服务,并在执行的过程中生成记录。
分析节点30,用于根据至少两个业务节点20生成的记录进行分析,从而确定本次执行目标业务的过程的路径、本次执行与目标业务相关的服务的先后顺序、和/或本次执行目标业务的过程是否异常。可选地,如果本次执行目标业务的过程异常,则分析节点30还用于确定导致异常的业务节点和/或服务等。
图3中是以业务节点20与分析节点30是相互独立的节点为例进行说明的,可替换的,分析节点30的功能也可以集成在至少一两业务节点20的其中一个业务节点20上。本文中均以业务节点20与分析节点30是相互独立的节点为例进行说明。
根据上文中的描述可知,分布式系统中还可以包括控制节点10,其功能可以参考上文,此处不再赘述。
可选地,分布式系统还包括第一数据库40,用于存储业务节点20生成的记录。基于此,分析节点30可以周期性地或定期地从第一数据库40中获取业务节点20所生成的记录。如果这些记录以日志形式存储,则第一数据库可以被称为日志数据库。
可选地,分布式系统还包括第二数据库50,用于存储正确的执行与目标业务相关的服务的先后顺序(如预定义的或分析节点30确定的正确的执行与目标业务相关的服务的先后顺序),从而在执行目标业务的过程异常时,确定导致异常的服务。
图3中是以第一数据库30和第二数据库40是相互独立的数据库为例进行说明的,可替换的,二者可以是同一个数据库。通常,第一数据库30所在的节点和第二数据库40所在的节点,独立于业务节点10和分析节点20,当然本申请实施例不限于此。
以下,结合附图对本申请实施例提供的追踪业务执行过程的方法进行说明。
如图4~6所示,为本申请实施例提供的一种分布式系统中追踪业务执行过程的方法的示意图。其中,对于当前业务节点来说,如果发起目标业务,则可以执行图4所示的方法;如果接收到当前业务节点的上一跳业务节点发送的根标识和第二记录标识,则可以执行图5所示的方法。对于分析节点来说,可以执行图6所示的方法。
图4所示的方法包括如下步骤S101~S107:
S101:当前业务节点发起目标业务。
S102:当前业务节点确定执行目标业务时需要跳到当前业务节点的下一跳业务节点执行与目标业务相关的服务。具体的,当前业务节点在执行目标业务相关的服务时,如果确定需要调用的服务(即S102中描述的与目标业务相关的服务)不是当前业务节点支持的服务,则确定需要跳到当前业务节点的下一跳业务节点执行该服务。
S103:当前业务节点生成根标识。根标识用于标识本次执行与目标业务相关的服务的业务节点所生成的记录。每次执行目标业务时都会生成一个根标识。可选地,根标识是一个随机数,例如64位随机数。
S104:当前业务节点确定当前业务节点的下一跳业务节点。
本申请实施例对S103与S104的执行顺序不进行限定。S103是可选的步骤。
S105:当前业务节点向当前业务节点的下一跳业务节点发送根标识。具体的,当前业务节点向当前业务节点的下一跳业务节点发送消息,该消息包括根标识。例如,根标识携带在该消息的消息头。根据上文中的描述可知,该消息还可以包括当前业务节点执行本节点的目标业务相关的服务的过程中产生的、且用于调用该下一跳业务节点所支持的服务的数据。关于该数据的具体示例可以参考如图2所示的示例。
由下文可知,图6中的当前业务节点在向当前业务节点的下一跳业务节点发送的信息可以以二元组信息形式表示,可选地,为了进行统一,执行S105具体可以是:当前业务节点向当前业务节点的下一跳业务节点发送“二元组信息(根标识,根标识)”。
S106:当前业务节点生成第一记录。第一记录包括第一次调用标识、目标业务标识、根标识、当前业务节点标识和服务标识。该服务标识用于标识当前业务节点所执行的与目标业务相关的服务。
例如,当前业务节点将五元组信息(第一次调用标识,目标业务标识,根标识,当前业务节点标识,第一次远程调用服务标识)作为第一记录。
第一次调用标识,用于标识第一记录是本次执行目标业务的过程中生成的第一条记录。
目标业务标识,用于标识目标业务。每种类型的业务都有固定的业务ID,可以将一个业务的ID作为该业务标识。
可选地,第一记录中还可以包括第一记录标识。第一记录标识用于标识第一记录。根标识与第一记录标识可以相同,也可以不同。可以理解的是,如果二者相同,则第一记录中可以不包括根标识或不包括第一记录标识。
第一记录包括的第一次调用标识、根标识和服务标识均是可选的。
S107:当前业务节点将第一记录发送给第一数据库。具体的,当前业务节点可以在生成第一记录后,立即将第一记录发送给第一数据库;或者在生成第一记录后存储第一记录,并定期地或周期地将所存储的记录(包括第一记录)发送给第一数据库。
可选地,当前业务节点还可以删除已发送给第一数据库的记录,从而节省存储空间。本申请实施例对此不进行限定。
S107是可选的步骤,S107可被替换为:当前业务节点将第一记录发送给分析节点。
本申请实施例对S104~S105和S106~S107的执行顺序不进行限定。
图5所示的方法包括如下步骤S201~S209:
S201:当前业务节点接收当前业务节点的上一跳业务节点发送的消息。该消息包括根标识和第二记录标识。例如,根标识和第二记录标识可以携带在该消息的消息头。
该消息还可以包括当前业务节点的上一跳业务节点发送的数据。关于数据的说明可以参考上文,关于数据的具体示例可以参考上文如图2所示的示例。
如果当前业务节点的上一跳业务节点是发起目标业务的业务节点,则第一记录与第二记录是同一记录,或者说根记录与第二记录标识相同。
如果当前业务节点的上一跳业务节点不是发起目标业务的业务节点,则第二记录与第一记录不是同一记录,第二记录可以认为是当前业务节点的上一跳业务节点生成的第三记录。关于第三记录的相关描述可以参考下文。
S202:当前业务节点根据该消息中的数据执行目标业务相关的服务。
如果当前业务节点在执行目标业务相关的服务的过程中,需要调用其他业务节点上的服务,说明当前业务节点没有执行完目标业务,则执行S203。例如,结合图2中的示例,当前业务节点可以是调用路径上的业务节点2。
如果当前业务节点在执行目标业务相关的服务的过程中,不需要调用其他业务节点上的服务,则执行S204,以进一步确定是否执行完目标业务。例如,结合图2中的示例,当前业务节点可以是返回路径上的业务节点6、业务节点2或业务节点1。
S203:当前业务节点生成第三记录标识,第三记录标识不是预设值,例如,第三记录标识可以是一个随机数,如64位随机数。然后,根据第三记录标识生成第三记录。第三记录包括:根标识、第二记录标识、第三记录标识、当前业务节点标识和服务标识。该服务标识用于标识当前业务节点所执行的与目标业务相关的服务。
执行S203后,执行S206。
S204:当前业务节点判断执行目标业务相关的服务后,是否需要向当前业务节点的下一跳业务节点返回数据。
若是,说明当前业务节点没有执行完目标业务,则执行S205。例如,结合图2中的示例,当前业务节点可以是返回路径上的业务节点6或业务节点2。
若否,说明当前业务节点已经执行完目标业务,即不需要调用下一跳业务节点上的服务,也不用返回数据给下一跳业务节点,因此,确定不用发送第三记录标识和根节点至当前业务节点的下一跳业务节点,则执行S208。例如,结合图2中的示例,当前业务节点可以是返回路径上的业务节点1。
S205:当前业务节点生成第三记录标识,第三记录标识不是预设值,例如,第三记录标识可以是一个随机数,如64位随机数。然后,根据根标识、第二记录标识和第三记录标识生成第三记录。第三记录包括:根标识、第二记录标识、第三记录标识、当前业务节点标识和服务标识。该服务标识用于标识当前业务节点与目标业务相关的服务已经完成。
S206:当前业务节点确定当前业务节点的下一跳业务节点。
S207:当前业务节点向当前业务节点的下一跳业务节点发送根标识和第三记录标识。具体的,当前业务节点向当前业务节点的下一跳业务节点发送消息,该消息包括根标识和第三记录标识。例如,根标识和第三记录标识携带在该消息的消息头。
如果执行S203和S206后,执行S207,则该消息还包括当前业务节点在执行与目标业务相关的服务的过程中产生的、且用于调用当前业务节点下一跳业务节点所支持的与目标业务相关的服务的数据。
如果执行S205和S206后,执行S207,则该消息还包括执行当前业务节点与目标业务相关的服务的过程中产生的数据。
关于数据的具体示例可以参考上文如图2所示的示例。
当前业务节点的下一跳业务节点所执行的服务与当前业务节点的所执行的服务相关。具体的,当前业务节点执行本节点的目标业务相关的服务时需要调用当前业务节点的下一跳业务节点上的服务,或者说当前业务节点所执行的服务与当前业务节点的下一跳业务节点所执行的服务之间是调用和被调用的关系。
执行S207后,执行S209。
S208:当前业务节点生成第三记录标识,第三记录标识是预设值0;或者先随机生成第三记录标识,然后将该第三记录标识设置为预设值0。根据根标识、第二记录标识和该第三记录标识生成第三记录。第三记录包括:根标识、第二记录标识、第三记录标识、当前业务节点标识和服务标识。该服务标识用于标识用于标识当前业务节点与目标业务相关的服务已经完成。
S209:当前业务节点将第三记录发送给第一数据库。
执行S209后,则结束。
参见图7,说明基于图2所示的示例应用于本申请实施例提供的技术方案时,各业务节点执行的步骤。图7所示的方法可以包括如下步骤:
步骤1、业务节点1根据用户1的ID调用用户服务(其标识为FUN1),获得用户1的用户信息。假设所获得的用户信息包括用户1的联系方式和用户1的订单ID,那么,业务节点1根据订单ID确定需要调用业务节点1的下一跳节点(如业务节点2)上的订单服务(其标识为FUN2)。接着,业务节点1生成第一次调用标识MAGICID和根标识X1;然后,根据第一次调用标识MAGICID和根标识X1生成第一记录,如五元组信息(MAGICID,TASKID,X1,业务节点1的标识,FUN1)。将(X1,X1)作为消息头,并将该消息头和该订单ID发送给业务节点2。TASKID为查询用户订单信息的业务标识。
步骤2、业务节点2根据接收到的订单ID执行订单服务,获得该订单ID对应的订单信息。假设所获得的订单信息包括订单的生成时间和产品ID,那么,业务节点2根据产品ID确定需要调用业务节点2的下一跳节点(如业务节点6)上的产品服务(其标识为FUN3)。接着,业务节点2生成第三记录标识X2;然后,根据X1和X2,生成第三记录如五元组信息(X1,X1,X2,业务节点2的标识,FUN2);将(X1,X2)作为消息头,并将该消息头和产品ID发送给业务节点6。
步骤3、业务节点6根据产品ID执行产品服务,获得该产品ID对应的产品信息(如产品单价等)。在执行产品服务后,确定需要向业务节点6的下一跳节点(即业务节点2)返回数据,则生成第三记录标识X3;然后,根据X1、X2和X3,生成第三记录如五元组信息(X1,X2,X3,业务节点6的标识,FUN3);将(X1,X3)作为消息头,并将该消息头和该产品信息(如产品单价等)返回给业务节点2。
步骤4、业务节点2根据接收到的消息执行针对订单服务的后续步骤(该步骤是可选的步骤),在确定执行订单服务后需要向业务节点2的下一跳节点(即业务节点1)返回数据,则生成第三记录标识X4;然后,根据X1、X3和X4,生成第三记录如五元组信息(X1,X3,X4,业务节点2的标识,FUN22);接着,将(X1,X4)作为消息头,并将该消息头和产品单价、产品ID和订单的生成时间返回给业务节点1。FUN22用于标识订单服务已经完成。
步骤5、业务节点1根据接收到的消息执行针对FUN1的后续步骤(该步骤是可选的步骤),在确定执行用户服务后,确定已执行完目标业务,则生成第三记录标识0;然后,根据X1、X4和0,生成第三记录如五元组信息(X1,X4,0,业务节点1的标识,FUN11)。FUN11用于标识用户服务已经完成。
如图6所示的方法包括如下步骤S301~S309:
S301:分析节点从第一数据库中获取多个记录。
例如,分析节点定期地或周期性地从第一数据库中获取多个记录。可以理解的,该多个记录可以包括一次或多次业务执行过程中生成的记录。
S302:分析节点从所获取的记录中查找包括第一次调用标识的记录。其中,包括第一次调用标识的记录为一次业务执行过程中的第一记录。
S303:假设分析节点执行S302后查找到K个第一记录,那么,对于该K个记录中的第k个第一记录来说,从S301中所获取的多个记录包括的非第一记录中,获取与第k个第一记录包括的根标识相同的根标识所在的记录,作为第k个第一记录对应的第三记录。其中,1≤k≤K,k和K均是整数。可以理解的,第k个第一记录与第k个第一记录对应的第三记录为同一次业务执行过程中生成的记录。
例如,基于图7所示的示例,可以先获取第一记录中的根标识X1,然后,获取该多个记录的非第一记录中的包括根记录X1的记录,作为该第一记录对应的第三记录。由此可以获得如下一组记录:(MAGICID,TASKID,X1,业务节点1的标识,FUN1),(X1,X1,X2,业务节点2的标识,FUN2),(X1,X2,X3,业务节点6的标识,FUN3),(X1,X3,X4,业务节点2的标识,FUN22),(X1,X4,0,业务节点1的标识,FUN11)。这组记录为同一次业务执行过程中的记录。
本实施例中是以第一记录中包括第一次调用标识为例进行说明的,因此,分析节点可以通过判断一个记录中是否包括第一次调用标识来识别该记录是第一记录还是第三记录。在另一些实施例中,如果第一记录中不包括第一次调用标识,那么,根据上文中的描述可知,第一记录和第三记录中包括的记录标识的个数不同,其中,第一记录中包括1个记录标识(即第一记录标识),第三记录中包括2个记录标识(即第二记录标识和第三记录标识),因此,分析节点可以通过判断一个记录中包括的记录标识的个数来识别该记录是第一记录还是第三记录。当然本申请实施例不限于此。
对于第k个第一记录和第k个第一记录对应的第三记录,执行以下步骤S304~S309:
S304:分析节点根据第k个第一记录中的第一记录标识,以及第k个第一记录对应的第三记录中的第二记录标识和第三记录标识,对第k个第一记录和第k个第一记录对应的至少一个第三记录(具体为第k个第一记录对应的所有第三记录)进行排序。
其中,如果所得到的排列顺序中相邻两个记录包括两个所述第三记录,则在前的记录包括的所述第三记录标识与在后的记录包括的所述第二记录标识相同;如果所得到的排列顺序中相邻两个记录包括所述第一记录和所述第三记录,则在前的记录包括的所述第一记录标识与在后的记录包括的第二记录标识相同。
具体的,分析节点可以将包括目标业务标识的第一记录作为本次执行目标业务的过程的第一个记录,在该至少一个第三记录中寻找与第一记录中的第一记录标识相同的第二记录标识,并将包括与第一记录标识相同的第二记录标识的第三记录作为本次执行目标业务的过程的第二个记录,然后在剩余的第三记录中查找与第二个记录中的第三记录标识相同的第二记录标识,并将包括与该第三记录标识相同的第二记录标识的第三记录作为本次执行目标业务的过程的第三个记录,依此类推,直到排到第三记录标识为0的第三记录。
例如,基于S303中的示例,分析节点可以将第一记录(MAGICID,TASKID,X1,业务节点1的标识,FUN1)作为本次执行目标业务的过程的第一个记录,将第三记录(X1,X1,X2,业务节点2的标识,FUN2)作为本次执行目标业务的过程的第二个记录,将第三记录(X1,X2,X3,业务节点6的标识,FUN3)作为本次执行目标业务的过程的第三个记录,将第三记录(X1,X3,X4,业务节点2的标识,FUN22)作为本次执行目标业务的过程的第四个记录,将(X1,X4,0,业务节点1的标识,FUN11)作为本次执行目标业务的过程的最后一个记录。
本申请实施例对分析节点如何区分一个第三记录中的第二记录标识和第三记录标识不进行限定。
例如,在第三记录中限定第二记录标识和第三记录标识的顺序。具体实现时,当前业务节点可以按照预设规则生成第三记录。基于此,分析节点可以基于该预设规则区分第三记录中的第二记录标识和第三记录标识。其中,预设规则包括:第三记录中的第二记录标识在前第三记录标识在后;或者,第三记录中的第三记录标识在前第二记录标识在后;或者,第三记录中包括标志位,当该标志位是1时表示该第三记录中第二记录标识在前第三录标识在后,当该标志位是0时表示该第三记录中第三录标识在前第二记录标识在后等。
又如,第二记录标识和第三记录标识均是数字,在第三记录中限定第二记录标识和第三记录标识的大小。例如,当前业务节点可以按照预设规则生成第三记录。基于此,分析节点可以基于该预设规则区分第三记录中的第二记录标识和第三记录标识。其中,预设规则包括:第三记录中的第二记录标识大于第三记录标识,或者第三记录中的第二记录标识小于第三记录标识等。
S305:分析节点根据S304中所得到的排列顺序,获取每条记录中的业务节点标识,获得目标业务的执行路径。
例如,基于S304中的示例,目标业务的执行路径为:业务节点1、2、6、2、1依次排列构成的路径。如此,即实现了对本次执行目标业务的过程的追踪。
S306:分析节点根据S304中所得到的排列顺序获取每条记录中的服务标识,获得本次执行与目标业务相关的服务的先后顺序。例如,基于S304中的示例,该先后顺序可以为:FUN1、FUN2、FUN3、FUN22、FUN11。
S307:分析节点根据S304中所得到的排列顺序,判断本次执行目标业务的过程是否异常。若否,则执行S308:若是,则执行S309。
具体的,分析节点按照S304中所得到的排列顺序中的各记录的顺序,依次将第一记录包括的第一记录标识、每个第三记录包括的第二记录标识和第三记录标识,进行异或操作;如果异或操作的结果是0,则判定本次执行目标业务的过程无异常;如果异或操作的结果是1,则判定本次执行目标业务的过程异常。
例如,基于S304中的示例,分析节点执行X1 XOR(X1 XOR X2)XOR(X2 XOR X3)XOR(X3 XOR X4)XOR(X4 XOR 0)。由于该异或操作的结果是0,因此,本次执行目标业务的过程没有异常。
本申请实施例对S305、S306和S307的执行顺序不进行限定。
S308:分析节点记录目标业务标识与S306中得到的本次执行与目标业务相关的服务的先后顺序之间的映射关系。
具体的,将S306中得到的本次执行与目标业务相关的服务的先后顺序和目标业务标识一起作为目标业务的执行模型,并将该执行模型存储至第二数据库。例如,基于S306中的示例,执行模型可以为:(TASKID,FUN1,FUN2,FUN3,FUN22,FUN11)。
可选地,分析节点在确定第二数据库中没有存储目标业务与S306中得到的本次执行与目标业务相关的服务的先后顺序之间的映射关系的情况下,记录将该先后顺序记录在第二数据库。
执行S308后,则结束。
S309:分析节点获取已记录的目标业务相关的服务的先后顺序,如从第二数据库获取的目标业务的执行模型中获取已记录的目标业务相关的服务的先后顺序;然后,对比已记录目标业务相关的服务的先后顺序与S306中已获得的本次执行与目标业务相关的服务的先后顺序,从而确定导致本次执行目标业务的过程异常的服务。
例如,假设执行S303后所获取到如下一组记录:(MAGICID,TASKID,X1,业务节点1的标识,FUN1),(X1,X1,X2,业务节点2的标识,FUN2),(X1,X2,X3,业务节点6的标识,FUN3)。那么,执行S304后,这组记录的排列顺序为:(MAGICID,TASKID,X1,业务节点1的标识,FUN1),(X1,X1,X2,业务节点2的标识,FUN2),(X1,X2,X3,业务节点6的标识,FUN3);执行S306后,所获得的本次执行与目标业务相关的服务的先后顺序为FUN1、FUN2、FUN3;执行S307后可知本次执行目标业务的过程异常。执行S309时,假设分析节点获取的目标业务的执行模型是(TASKID,FUN1,FUN2,FUN3,FUN22,FUN11),那么,对比“FUN1、FUN2、FUN3”和“FUN1,FUN2,FUN3,FUN22,FUN11”可知,因执行FUN22导致本次执行目标业务的过程异常。
至此,定位出了导致本次执行目标业务的过程异常的服务。
可选地,分析节点根据FUN2和FUN22之间的关系,并结合本次执行目标业务的过程的路径可以定位出是业务节点2在处理业务节点6返回的数据时执行失败,导致本次执行目标业务的过程异常。
执行S309后,则结束。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对当前业务节点和分析节点进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图8所示,为本申请实施例提供的一种当前业务节点80的结构示意图。当前业务节点80应用于分布式系统中追踪业务执行过程,例如用于执行图4和/或图5所示的方法。当前业务节点80可以包括处理单元801和收发单元802。处理单元801,用于发起目标业务,且在执行目标业务时需要跳到当前业务节点80的下一跳业务节点执行与目标业务相关的服务时,生成第一记录,第一记录包括:目标业务标识、当前业务节点80标识和第一记录标识,第一记录标识用于标识第一记录;收发单元802,用于将第一记录标识发送至下一跳业务节点。例如,结合图4,处理单元801可以用于执行S106,收发单元802可以用于执行S107。处理单元801还用于,当收发单元802接收到当前业务节点80的上一跳业务节点发送的上一跳业务节点生成的第二记录的第二记录标识时,若确定当前业务节点80没有完成目标业务时,则生成第三记录,第三记录包括:第二记录标识、第三记录的第三记录标识和当前业务节点80标识;收发单元802还用于,将第三记录标识发送至当前业务节点80的下一跳业务节点,下一跳业务节点所执行的服务与当前业务节点80所执行的服务相关。例如,结合图5,处理单元801可以用于执行S203或S205,收发单元802可以用于执行S207。
可选的,处理单元801具体用于:如果在执行与目标业务相关的服务时,需要调用下一跳业务节点中的服务,则确定当前业务节点80没有完成目标业务;或者,如果在执行与目标业务相关的服务后,需要把执行与目标业务相关的服务的过程中产生的数据返回给下一跳业务节点,则确定当前业务节点80没有完成目标业务。
可选的,处理单元801还用于,当确定当前业务节点80完成了目标业务时,将第三记录中的第三记录标识设为预设值,且确定不用发送第三记录标识至下一跳业务节点。例如,结合图5,处理单元801可以用于执行S208中的生成第三记录标识,第三记录标识是预设值0。
可选的,第一记录和第三记录都还包括根标识,根标识由发起目标业务的业务节点生成,用于标识本次执行与目标业务相关的服务的业务节点所生成的记录。该情况下,收发单元802还用于,当处理单元801生成第一记录或第三记录后,将根标识发送至下一跳业务节点。例如,结合图5,处理单元801可以用于执行S207。
可选的,第三记录中限定了第二记录标识与第三记录标识的顺序。
可选的,第一记录和第三记录都还包括服务标识;第一记录包括的服务标识用于标识当前业务节点80所执行的与目标业务相关的服务;如果处理单元801在执行与目标业务相关的服务时,需要调用下一跳业务节点中的服务,则第三记录包括的服务标识为当前业务节点80所执行的服务的服务标识;如果处理单元801已执行完与目标业务相关的服务,则第三记录包括的服务标识用于标识当前业务节点80与目标业务相关的服务已经完成。
可选的,第一记录还包括第一次调用标识,第一次调用标识用于标识第一记录是本次执行目标业务的过程中生成的第一条记录。
如图9所示,为本申请实施例提供的一种分析节点90的结构示意图。分析节点90应用于分布式系统中追踪业务执行过程,例如用于执行图6所示的方法。分析节点90可以包括处理单元901。处理单元901,用于执行以下步骤:获取执行与目标业务相关的服务的业务节点生成的第一记录和至少一个第三记录,第一记录包括目标业务标识、生成第一记录的业务节点标识和第一记录标识,第三记录包括第二记录标识、第三记录标识和生成第三记录的业务节点标识;第二记录标识用于标识生成第三记录的业务节点的上一跳业务节点生成的第二记录;根据第一记录中的第一记录标识,以及至少一个第三记录中的第二记录标识和第三记录标识,对第一记录和至少一个第三记录进行排序;根据第一记录和至少一个第三记录的排列顺序,获取每条记录中的业务节点标识的排列顺序,业务节点标识的排列顺序为本次执行目标业务的路径。例如,结合图6,处理单元901可以用于执行S301~S305。
可选的,如果排列顺序中相邻两个记录包括两个第三记录,则在前的记录包括的第三记录标识与在后的记录包括的第二记录标识相同;如果排列顺序中相邻两个记录包括第一记录和第三记录,则在前的记录包括的第一记录标识与在后的记录包括的第二记录标识相同。
可选的,第三记录中限定了第二记录标识与第三记录标识的顺序;处理单元901还用于,根据第三记录中的第二记录标识与第三记录标识的顺序,识别第三记录中的第二记录标识和第三记录标识。
可选的,第一记录和至少一个第三记录都包括根标识,根标识是发起目标业务的业务节点生成的,用于标识本次执行与目标业务相关的服务的业务节点所生成的记录。该情况下,处理单元901具体用于:获取包括根标识的至少两个记录;以及,将至少两个记录中的包括第一次调用标识的记录作为第一记录,并将其他记录作为至少一个第三记录;第一次调用标识用于标识第一记录是本次执行目标业务生成的第一条记录。
可选的,处理单元901还用于:根据排列顺序获取每条记录中的服务标识,获得本次执行与目标业务相关的服务的先后顺序;其中,第一记录包括的服务标识用于标识当前业务节点所执行的与目标业务相关的服务;第三记录包括的服务标识为当前业务节点所执行的服务的服务标识,或者用于标识当前业务节点与目标业务相关的服务已经完成。例如,结合图6,处理单元901可以用于执行S306。
可选的,处理单元901还用于:根据排列顺序,确定本次执行目标业务的过程是否异常。例如,结合图6,处理单元901可以用于执行S307。
可选的,处理单元901具体用于:按照排列顺序中的各记录的顺序依次将第一记录包括的第一记录标识、每个第三记录包括的第二记录标识和第三记录标识,进行异或操作;如果异或操作的结果是0,则判定本次执行目标业务的过程无异常;如果异或操作的结果是1,则判定本次执行目标业务的过程异常。
可选的,分析节点90还包括记录单元902,用于如果本次执行目标业务的过程无异常,则记录本次执行与目标业务相关的服务的先后顺序与目标业务标识之间的映射关系。例如,结合图6,处理单元901可以用于执行S308。
可选的,处理单元901还用于:如果本次执行目标业务的过程异常,则对比已记录的目标业务相关的服务的先后顺序和获得的本次执行与目标业务相关的服务的先后顺序,定位出导致本次执行目标业务的过程异常的服务。例如,结合图6,处理单元901可以用于执行S309。
图10为本申请实施例提供的一种分布式系统中追踪业务执行过程的装置100的硬件结构示意图。该装置100可以是当前网络节点或分析节点。该装置100包括:至少一个处理器1001、通信线路1002、存储器1003以及通信接口1004。通信接口1004可以包括有线收发器或无线收发器。无线收发器可以包括通信芯片。其中,至少一个处理器1001与通信芯片可以集成在一起,也可以是独立设置的。
处理器1001可以是一个通用中央处理单元(central processing unit,CPU),该处理器1001还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。处理器1001还可以是图形处理器(graphics processing unit,GPU)、神经网络处理器(neural network processing unit,NPU)、微处理器、特定应用集成电路(application-specific integrated circuit,ASIC)、或一个或多个用于控制本申请方案程序执行的集成电路。
通信线路1002可以包括一通路,用于在上述组件(如处理器1001、存储器1003和通信接口1004)之间传送信息。
存储器1003可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1003可以是独立存在的,通过通信线路1002与处理器1001相连接。存储器1003也可以和处理器1002集成在一起。本申请实施例提供的存储器1003通常可以具有非易失性。存储器1003用于存储执行本申请方案的计算机执行指令,并由处理器1001来控制执行。处理器1001用于执行存储器1003中存储的计算机执行指令,从而实现本申请上述实施例提供的方法。
通信接口1004可以是任何收发器一类的装置,用于装置100与其他设备通信。
可选地,本申请实施例中的计算机执行指令也可以称之为应用程序代码。
作为一个示例,处理器1001可以包括一个或多个CPU。作为一个示例,服务器1000可以包括多个处理器。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
作为一个示例,当上述当前业务节点80通过该装置100实现时,上述收发单元802所执行的功能可以通过通信接口1004实现,上述处理单元801所执行的功能可以通过处理器1001调用存储器1003中存储的计算机程序来实现。当上述分析节点通过该装置100实现时,上述处理单元901所执行的功能可以通过处理器1001调用存储器1003中存储的计算机程序来实现,记录单元902可以通过存储器1003来实现。
上述装置1000可以是一个通用设备或者是一个专用设备。
上述提供的任一种当前业务节点80、分析节点90和装置10的相关内容的解释以及有益效果的描述等均可参考上述方法实施例,此处不再赘述。
本申请实施例还提供了一种分布式系统,该分布式系统可以包括当前业务节点80和分析节点90。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (34)
1.一种分布式系统中追踪业务执行过程的方法,其特征在于,应用于所述分布式系统中的当前业务节点,所述方法包括:
当所述当前业务节点发起目标业务,且在执行所述目标业务时需要跳到所述当前业务节点的下一跳业务节点执行与所述目标业务相关的服务时,生成第一记录,所述第一记录包括:所述目标业务标识、所述当前业务节点标识、服务标识和第一记录标识,所述第一记录标识用于标识所述第一记录,所述第一记录包括的服务标识用于标识所述当前业务节点所执行的与所述目标业务相关的服务;将所述第一记录标识发送至所述下一跳业务节点;
当所述当前业务节点接收到所述当前业务节点的上一跳业务节点发送的所述上一跳业务节点生成的第二记录的第二记录标识,且确定所述当前业务节点没有完成所述目标业务时,生成第三记录,所述第三记录包括:所述第二记录标识、服务标识、所述第三记录的第三记录标识和所述当前业务节点标识,所述第三记录包括的服务标识为:所述当前业务节点所执行的服务的服务标识;将所述第三记录标识发送至所述当前业务节点的下一跳业务节点,所述下一跳业务节点所执行的服务与所述当前业务节点所执行的服务相关。
2.根据权利要求1所述的方法,其特征在于,所述确定所述当前业务节点没有完成所述目标业务,包括:
如果所述当前业务节点在执行与所述目标业务相关的服务时,需要调用所述下一跳业务节点中的服务,则确定所述当前业务节点没有完成所述目标业务;
或者,如果所述当前业务节点在执行与所述目标业务相关的服务后,需要把执行与所述目标业务相关的服务的过程中产生的数据返回给所述下一跳业务节点,则确定所述当前业务节点没有完成所述目标业务。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
当确定所述当前业务节点完成了所述目标业务时,将所述第三记录中的所述第三记录标识设为预设值,且确定不用发送所述第三记录标识至所述下一跳业务节点。
4.根据权利要求1所述的方法,其特征在于,所述第一记录和所述第三记录都还包括根标识,所述根标识由发起所述目标业务的业务节点生成,用于标识本次执行与所述目标业务相关的服务的业务节点所生成的记录;
所述方法还包括:当所述当前业务节点生成所述第一记录或所述第三记录后,将所述根标识发送至所述下一跳业务节点。
5.根据权利要求1所述的方法,其特征在于,所述第三记录中限定了所述第二记录标识与所述第三记录标识的顺序。
6.根据权利要求1所述的方法,其特征在于,所述第三记录包括的服务标识为:所述当前业务节点所执行的服务的服务标识,包括:如果所述当前业务节点在执行与所述目标业务相关的服务时,需要调用所述下一跳业务节点中的服务,则所述第三记录包括的服务标识为所述当前业务节点所执行的服务的服务标识;
如果所述当前业务节点已执行完与所述目标业务相关的服务,则所述第三记录包括的所述服务标识用于标识所述当前业务节点与所述目标业务相关的服务已经完成。
7.根据权利要求1所述的方法,其特征在于,所述第一记录还包括第一次调用标识,所述第一次调用标识用于标识所述第一记录是本次执行所述目标业务的过程中生成的第一条记录。
8.一种分布式系统中追踪业务执行过程的方法,其特征在于,应用于所述分布式系统中分析节点,所述方法包括:
获取执行与目标业务相关的服务的业务节点生成的第一记录和至少一个第三记录,所述第一记录包括所述目标业务标识、生成所述第一记录的业务节点标识和第一记录标识,所述第三记录包括第二记录标识、第三记录标识和生成所述第三记录的业务节点标识;所述第二记录标识用于标识生成所述第三记录的业务节点的上一跳业务节点生成的第二记录;
根据所述第一记录中的所述第一记录标识,以及所述至少一个第三记录中的所述第二记录标识和所述第三记录标识,对所述第一记录和所述至少一个第三记录进行排序;根据所述第一记录和所述至少一个第三记录的排列顺序,获取每条记录中的业务节点标识的排列顺序,所述业务节点标识的排列顺序为本次执行所述目标业务的路径;
所述方法还包括:
根据所述排列顺序获取每条记录中的服务标识,获得本次执行与所述目标业务相关的服务的先后顺序;其中,所述第一记录包括的所述服务标识用于标识所述业务节点所执行的与所述目标业务相关的服务;所述第三记录包括的所述服务标识为所述业务节点所执行的服务的服务标识。
9.根据权利要求8所述的方法,其特征在于,
如果所述排列顺序中相邻两个记录包括两个所述第三记录,则在前的记录包括的所述第三记录标识与在后的记录包括的所述第二记录标识相同;
如果所述排列顺序中相邻两个记录包括所述第一记录和所述第三记录,则在前的记录包括的所述第一记录标识与在后的记录包括的第二记录标识相同。
10.根据权利要求8或9所述的方法,其特征在于,所述第三记录中限定了所述第二记录标识与所述第三记录标识的顺序;所述方法还包括:
根据所述第三记录中的所述第二记录标识与所述第三记录标识的顺序,识别所述第三记录中的所述第二记录标识和所述第三记录标识。
11.根据权利要求8所述的方法,其特征在于,所述第一记录和所述至少一个第三记录都包括根标识,所述根标识是发起所述目标业务的业务节点生成的,用于标识本次执行与所述目标业务相关的服务的业务节点所生成的记录;
所述获取执行与所述目标业务相关的服务的业务节点生成的第一记录和至少一个第三记录,包括:
获取包括所述根标识的至少两个记录;
将所述至少两个记录中的包括第一次调用标识的记录作为所述第一记录,并将其他记录作为所述至少一个第三记录;所述第一次调用标识用于标识所述第一记录是本次执行所述目标业务的过程中生成的第一条记录。
12.根据权利要求8所述的方法,其特征在于,如果所述业务节点已执行完与所述目标业务相关的服务,所述第三记录包括的服务标识用于标识所述业务节点与所述目标业务相关的服务已经完成。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
根据所述排列顺序,确定本次执行所述目标业务的过程是否异常。
14.根据权利要求13所述的方法,其特征在于,所述根据所述排列顺序,确定本次执行所述目标业务的过程是否异常,包括:
按照所述排列顺序中的各记录的顺序依次将所述第一记录包括的所述第一记录标识、每个所述第三记录包括的所述第二记录标识和所述第三记录标识,进行异或操作;
如果所述异或操作的结果是0,则判定本次执行所述目标业务的过程无异常;
如果所述异或操作的结果是1,则判定本次执行所述目标业务的过程异常。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
如果本次执行所述目标业务的过程无异常,则记录本次执行与所述目标业务相关的服务的先后顺序与所述目标业务标识之间的映射关系。
16.根据权利要求14所述的方法,其特征在于,所述方法还包括:
如果所述本次执行目标业务的过程异常,则对比已记录的所述目标业务相关的服务的先后顺序和所述获得的本次执行与所述目标业务相关的服务的先后顺序,定位出导致本次执行所述目标业务的过程异常的服务。
17.一种当前业务节点,其特征在于,应用于分布式系统中追踪业务执行过程,所述当前业务节点包括:处理单元和收发单元;
所述处理单元,用于发起目标业务,且在执行所述目标业务时需要跳到所述当前业务节点的下一跳业务节点执行与所述目标业务相关的服务时,生成第一记录,所述第一记录包括:所述目标业务标识、所述当前业务节点标识、服务标识和第一记录标识,所述第一记录标识用于标识所述第一记录,所述第一记录包括的服务标识用于标识所述当前业务节点所执行的与所述目标业务相关的服务;所述收发单元,用于将所述第一记录标识发送至所述下一跳业务节点;
所述处理单元还用于,当所述收发单元接收到所述当前业务节点的上一跳业务节点发送的所述上一跳业务节点生成的第二记录的第二记录标识时,若确定所述当前业务节点没有完成所述目标业务时,则生成第三记录,所述第三记录包括:所述第二记录标识、服务标识、所述第三记录的第三记录标识和所述当前业务节点标识,所述第三记录包括的服务标识为:所述当前业务节点所执行的服务的服务标识;所述收发单元还用于,将所述第三记录标识发送至所述当前业务节点的下一跳业务节点,所述下一跳业务节点所执行的服务与所述当前业务节点所执行的服务相关。
18.根据权利要求17所述的当前业务节点,其特征在于,所述处理单元具体用于:
如果在执行与所述目标业务相关的服务时,需要调用所述下一跳业务节点中的服务,则确定所述当前业务节点没有完成所述目标业务;
或者,如果在执行与所述目标业务相关的服务后,需要把执行与所述目标业务相关的服务的过程中产生的数据返回给所述下一跳业务节点,则确定所述当前业务节点没有完成所述目标业务。
19.根据权利要求17或18所述的当前业务节点,其特征在于,
所述处理单元还用于,当确定所述当前业务节点完成了所述目标业务时,将所述第三记录中的所述第三记录标识设为预设值,且确定不用发送所述第三记录标识至所述下一跳业务节点。
20.根据权利要求17所述的当前业务节点,其特征在于,所述第一记录和所述第三记录都还包括根标识,所述根标识由发起所述目标业务的业务节点生成,用于标识本次执行与所述目标业务相关的服务的业务节点所生成的记录;
所述收发单元还用于,当所述处理单元生成所述第一记录或所述第三记录后,将所述根标识发送至所述下一跳业务节点。
21.根据权利要求17所述的当前业务节点,其特征在于,所述第三记录中限定了所述第二记录标识与所述第三记录标识的顺序。
22.根据权利要求17所述的当前业务节点,其特征在于,所述第三记录包括的服务标识为:所述当前业务节点所执行的服务的服务标识,包括:如果所述处理单元在执行与所述目标业务相关的服务时,需要调用所述下一跳业务节点中的服务,则所述第三记录包括的所述服务标识为所述当前业务节点所执行的服务的服务标识;
如果所述处理单元已执行完与所述目标业务相关的服务,则所述第三记录包括的所述服务标识用于标识所述当前业务节点与所述目标业务相关的服务已经完成。
23.根据权利要求17所述的当前业务节点,其特征在于,所述第一记录还包括第一次调用标识,所述第一次调用标识用于标识所述第一记录是本次执行所述目标业务的过程中生成的第一条记录。
24.一种分析节点,其特征在于,应用于分布式系统中追踪业务执行过程,所述分析节点包括:处理单元,用于执行以下步骤:
获取执行与目标业务相关的服务的业务节点生成的第一记录和至少一个第三记录,所述第一记录包括所述目标业务标识、生成所述第一记录的业务节点标识和第一记录标识,所述第三记录包括第二记录标识、第三记录标识和生成所述第三记录的业务节点标识;所述第二记录标识用于标识生成所述第三记录的业务节点的上一跳业务节点生成的第二记录;
根据所述第一记录中的所述第一记录标识,以及所述至少一个第三记录中的所述第二记录标识和所述第三记录标识,对所述第一记录和所述至少一个第三记录进行排序;根据所述第一记录和所述至少一个第三记录的排列顺序,获取每条记录中的业务节点标识的排列顺序,所述业务节点标识的排列顺序为本次执行所述目标业务的路径;
根据所述排列顺序获取每条记录中的服务标识,获得本次执行与所述目标业务相关的服务的先后顺序;其中,所述第一记录包括的服务标识用于标识所述业务节点所执行的与所述目标业务相关的服务;所述第三记录包括的服务标识为所述业务节点所执行的服务的服务标识。
25.根据权利要求24所述的分析节点,其特征在于,
如果所述排列顺序中相邻两个记录包括两个所述第三记录,则在前的记录包括的所述第三记录标识与在后的记录包括的所述第二记录标识相同;
如果所述排列顺序中相邻两个记录包括所述第一记录和所述第三记录,则在前的记录包括的所述第一记录标识与在后的记录包括的第二记录标识相同。
26.根据权利要求24或25所述的分析节点,其特征在于,所述第三记录中限定了所述第二记录标识与所述第三记录标识的顺序;
所述处理单元还用于,根据所述第三记录中的所述第二记录标识与所述第三记录标识的顺序,识别所述第三记录中的所述第二记录标识和所述第三记录标识。
27.根据权利要求24所述的分析节点,其特征在于,所述第一记录和所述至少一个第三记录都包括根标识,所述根标识是发起所述目标业务的业务节点生成的,用于标识本次执行与所述目标业务相关的服务的业务节点所生成的记录;
所述处理单元具体用于:获取包括所述根标识的至少两个记录;以及,将所述至少两个记录中的包括第一次调用标识的记录作为所述第一记录,并将其他记录作为所述至少一个第三记录;所述第一次调用标识用于标识所述第一记录是本次执行所述目标业务生成的第一条记录。
28.根据权利要求24所述的分析节点,其特征在于,如果所述业务节点已执行完与所述目标业务相关的服务,所述第三记录包括的服务标识用于标识所述业务节点与所述目标业务相关的服务已经完成。
29.根据权利要求28所述的分析节点,其特征在于,
所述处理单元还用于:根据所述排列顺序,确定本次执行所述目标业务的过程是否异常。
30.根据权利要求29所述的分析节点,其特征在于,所述处理单元具体用于:
按照所述排列顺序中的各记录的顺序依次将所述第一记录包括的所述第一记录标识、每个所述第三记录包括的所述第二记录标识和所述第三记录标识,进行异或操作;
如果所述异或操作的结果是0,则判定本次执行所述目标业务的过程无异常;
如果所述异或操作的结果是1,则判定本次执行所述目标业务的过程异常。
31.根据权利要求30所述的分析节点,其特征在于,所述分析节点还包括:
记录单元,用于如果本次执行所述目标业务的过程无异常,则记录本次执行与所述目标业务相关的服务的先后顺序与所述目标业务标识之间的映射关系。
32.根据权利要求30所述的分析节点,其特征在于,
所述处理单元还用于:如果所述本次执行目标业务的过程异常,则对比已记录的所述目标业务相关的服务的先后顺序和所述获得的本次执行与所述目标业务相关的服务的先后顺序,定位出导致本次执行所述目标业务的过程异常的服务。
33.一种分布式系统中追踪业务执行过程的装置,其特征在于,包括存储器和处理器,所述存储器用于存储计算机执行指令,所述处理器用于调用所述计算机执行指令,使得所述装置运行时,执行所述计算机执行指令以实现如权利要求1至7任一项所述的方法的操作步骤。
34.一种分布式系统中追踪业务执行过程的装置,其特征在于,包括存储器和处理器,所述存储器用于存储计算机执行指令,所述处理器用于调用所述计算机执行指令,使得所述装置运行时,执行所述计算机执行指令以实现如权利要求8至16任一项所述的方法的操作步骤。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/118256 WO2020107342A1 (zh) | 2018-11-29 | 2018-11-29 | 分布式系统中追踪业务执行过程的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113169900A CN113169900A (zh) | 2021-07-23 |
CN113169900B true CN113169900B (zh) | 2022-12-27 |
Family
ID=70852657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880099904.0A Active CN113169900B (zh) | 2018-11-29 | 2018-11-29 | 分布式系统中追踪业务执行过程的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113169900B (zh) |
WO (1) | WO2020107342A1 (zh) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140012939A1 (en) * | 2011-03-17 | 2014-01-09 | Lg Electronics Inc. | Method for providing resources by a terminal, and method for acquiring resources by a server |
CN103179015A (zh) * | 2011-12-20 | 2013-06-26 | 瑞穗实业银行(中国)有限公司 | 用于债务保理的消息处理方法与处理装置 |
US20150333930A1 (en) * | 2014-05-15 | 2015-11-19 | Akamai Technologies, Inc. | Dynamic service function chaining |
CN104219316B (zh) * | 2014-09-12 | 2018-03-23 | 微梦创科网络科技(中国)有限公司 | 一种分布式系统中的调用请求处理方法及装置 |
CN104618144A (zh) * | 2014-12-31 | 2015-05-13 | 深圳市兰丁科技有限公司 | 一种根据消息标识追踪数据包的方法和系统 |
CN106656536B (zh) * | 2015-11-03 | 2020-02-18 | 阿里巴巴集团控股有限公司 | 一种用于处理服务调用信息的方法与设备 |
CN106790718A (zh) * | 2017-03-16 | 2017-05-31 | 北京搜狐新媒体信息技术有限公司 | 服务调用链路分析方法及系统 |
CN107181675B (zh) * | 2017-06-20 | 2020-03-03 | 北京奇艺世纪科技有限公司 | 服务调用方法及装置 |
CN108600045A (zh) * | 2018-04-05 | 2018-09-28 | 厦门快商通信息技术有限公司 | 一种服务链路监控方法及装置 |
CN108768752B (zh) * | 2018-06-25 | 2021-12-03 | 华为技术有限公司 | 故障定位方法、装置以及系统 |
-
2018
- 2018-11-29 CN CN201880099904.0A patent/CN113169900B/zh active Active
- 2018-11-29 WO PCT/CN2018/118256 patent/WO2020107342A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2020107342A1 (zh) | 2020-06-04 |
CN113169900A (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10225145B2 (en) | Method and device for updating client | |
CN109981349B (zh) | 调用链信息查询方法以及设备 | |
US10924326B2 (en) | Method and system for clustered real-time correlation of trace data fragments describing distributed transaction executions | |
CN110971702A (zh) | 服务调用方法、装置、计算机设备及存储介质 | |
CN111694639A (zh) | 进程容器地址的更新方法、装置和电子设备 | |
CN112437155B (zh) | 服务数据的处理方法、装置以及服务端设备 | |
CN113938461B (zh) | 域名缓存解析查询方法、装置、设备及存储介质 | |
CN113169900B (zh) | 分布式系统中追踪业务执行过程的方法和装置 | |
CN112751724B (zh) | 检测链路状态的方法及装置 | |
CN109660458B (zh) | 一种路由方法及设备 | |
CN115037653B (zh) | 业务流量监控方法、装置、电子设备和存储介质 | |
US7885995B2 (en) | Processing service requests in a distributed environment | |
JP2006277158A (ja) | データ更新システム、サーバ及びプログラム | |
CN116821215A (zh) | 基于端口查询的opc ua服务器搜索方法 | |
CN113687940B (zh) | 负载均衡方法、装置及物理机 | |
US8825901B2 (en) | Distributed parallel discovery | |
CN112783673A (zh) | 一种调用链的确定方法、装置、计算机设备及存储介质 | |
CN112612625A (zh) | 一种服务调用的方法及装置 | |
CN114584629B (zh) | 一种交易报文处理方法及装置 | |
CN114944985B (zh) | 一种资源异构环境下面向可靠性的服务功能链备份方法 | |
CN113518038A (zh) | 多机房流量调度方法、计算设备及计算机存储介质 | |
CN111506658B (zh) | 数据处理方法、装置、第一设备及存储介质 | |
US9104566B2 (en) | System and method for determining whether a failed communication between signal transfer points was in error | |
CN110347632B (zh) | 一种通信方法和装置 | |
CN117097602A (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 |