CN117369907A - 一种数据处理方法、装置、存储介质及设备 - Google Patents
一种数据处理方法、装置、存储介质及设备 Download PDFInfo
- Publication number
- CN117369907A CN117369907A CN202210767043.7A CN202210767043A CN117369907A CN 117369907 A CN117369907 A CN 117369907A CN 202210767043 A CN202210767043 A CN 202210767043A CN 117369907 A CN117369907 A CN 117369907A
- Authority
- CN
- China
- Prior art keywords
- target
- service
- module
- processing
- processing request
- 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
- 238000003672 processing method Methods 0.000 title abstract description 18
- 238000012545 processing Methods 0.000 claims abstract description 917
- 238000000034 method Methods 0.000 claims abstract description 446
- 230000008569 process Effects 0.000 claims abstract description 378
- 230000002159 abnormal effect Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 18
- 238000007781 pre-processing Methods 0.000 claims description 14
- 230000003068 static effect Effects 0.000 claims description 9
- 230000002452 interceptive effect Effects 0.000 claims description 8
- 230000002829 reductive effect Effects 0.000 abstract description 6
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000012360 testing method Methods 0.000 description 38
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 22
- 238000004891 communication Methods 0.000 description 15
- 238000004458 analytical method Methods 0.000 description 12
- 230000004044 response Effects 0.000 description 12
- 230000003993 interaction Effects 0.000 description 9
- 238000012423 maintenance Methods 0.000 description 8
- 238000011161 development Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000012163 sequencing technique Methods 0.000 description 5
- 238000004088 simulation Methods 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 101100524346 Xenopus laevis req-a gene Proteins 0.000 description 1
- 101100524347 Xenopus laevis req-b gene Proteins 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000000502 dialysis Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
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)
Abstract
本申请实施例公开了一种数据处理方法、装置、存储介质及设备,可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景。方法包括:根据目标处理请求中的业务参数确定用于处理目标业务的目标业务模块,以及确定目标代理服务进程;通过目标代理服务进程,将目标处理请求转发至目标业务模块,调用目标业务模块,得到关于目标业务的目标处理结果;根据目标处理请求关联的请求对象的对象特征信息以及目标处理请求对应的随机因子,生成目标业务模块的调用信息;根据目标处理结果、目标处理请求以及目标业务模块的信息,生成关于目标处理请求的调用链路。通过本申请,可以降低调用链路的生成成本以及提高调用链路的生成效率。
Description
技术领域
本申请涉及一种计算机技术领域,尤其涉及一种数据处理方法、装置、存储介质及设备。
背景技术
随着计算机系统规模变得越来越大,计算机系统中各个业务模块之间的调用关系变得复杂,需要获取各个业务模块处理请求所形成的调用链路来检测各个业务模块的运行情况。
目前,在生成调用链路时,需要在各个业务模块的业务处理程序中嵌入上报调用数据程序,由该上报调用数据程序,对各个业务模块在业务处理过程中的各个通信消息进行解析和封装,进而生成各个业务模块处理请求所形成的调用链路。由于上报调用数据程序嵌入至各个业务模块的业务处理程序后,具有业务侵入性,会影响各个业务模块进行业务处理的性能和稳定性,且具有安全隐患,因此,需要对各个业务模块的业务处理程序进行代码修改,增加了开发成本,并导致调用链路的生成效率较低。
发明内容
本申请实施例所要解决的技术问题在于,提供一种数据处理方法、装置、存储介质及设备,可以降低调用链路的生成成本以及提高调用链路的生成效率。
本申请实施例一方面提供一种数据处理方法,包括:
获取待处理的目标业务的目标处理请求;目标处理请求携带目标业务的业务参数;
根据业务参数确定用于处理目标业务的目标业务模块,以及确定目标业务模块对应的目标代理服务进程;
通过目标代理服务进程,将目标处理请求转发至目标业务模块,调用目标业务模块,根据目标处理请求处理目标业务,得到关于目标业务的目标处理结果;
获取目标处理请求关联的请求对象的对象特征信息以及目标处理请求对应的随机因子,对随机因子和对象特征信息进行特征编码,得到目标业务模块的调用信息;目标业务模块的调用信息用于指示目标业务模块在目标业务的处理过程中的调用顺序;
根据目标处理结果、目标处理请求以及目标业务模块的调用信息,生成关于目标处理请求的调用链路;调用链路用于反映目标处理请求的处理过程。
本申请实施例一方面提供一种数据处理装置,包括:
获取模块,用于获取待处理的目标业务的目标处理请求;目标处理请求携带目标业务的业务参数;
确定模块,用于根据业务参数确定用于处理目标业务的目标业务模块,以及确定目标业务模块对应的目标代理服务进程;
业务处理模块,用于通过目标代理服务进程,将目标处理请求转发至目标业务模块,调用目标业务模块,根据目标处理请求处理目标业务,得到关于目标业务的目标处理结果;
特征编码模块,用于获取目标处理请求关联的请求对象的对象特征信息以及目标处理请求对应的随机因子,对随机因子和对象特征信息进行特征编码,得到目标业务模块的调用信息;目标业务模块的调用信息用于指示目标业务模块在目标业务的处理过程中的调用顺序;
生成模块,用于根据目标处理结果、目标处理请求以及目标业务模块的调用信息,生成关于目标处理请求的调用链路;调用链路用于反映目标处理请求的处理过程。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例中,通过为目标业务模块创建对应的目标代理服务进程,通过该目标代理服务进程来将目标处理请求转发至对应的目标业务模块,换言之,该目标代理服务进程能够捕获到处理目标处理请求的目标业务模块。进而,调用目标业务模块,根据目标处理请求处理待处理的目标业务,得到该目标业务的目标处理结果。进一步地,对目标处理请求关联的请求对象的对象特征信息以及目标处理请求对应的随机因子进行特征编码,得到目标业务模块的调用信息,该请求对象的对象特征信息用于反映请求对象的特有对象信息,不同请求对象的对象特征信息不相同,同时,不同处理请求对应的随机因子也不同。因此,通过对随机因子和对象特征信息进行特征编码,得到目标业务模块的调用信息,该目标业务模块的调用信息具有唯一性,进而基于该业务模块的调用信息生成的目标处理请求的调用链路也具有唯一性,提高调用链路的准确度。根据目标处理结果、目标处理请求以及目标业务模块的调用信息,生成关于目标处理请求的调用链路。可见,只需要目标代理服务进程与目标业务模块之间进行交互,即可生成目标处理请求的调用链路,不需要在目标业务模块中嵌入上报调用数据程序,进而,不需要业务模块的业务处理程序进行代码修改,安全性较高,并且开发成本和维护成本较低,可以提高调用链路的生成效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据处理系统的架构示意图;
图2是本申请实施例提供的一种数据处理的应用场景示意图;
图3是本申请实施例提供的一种数据处理方法的流程示意图;
图4是本申请实施例提供的一种生成调用信息的示意图;
图5是本申请实施例提供的一种调用链路生成的系统架构图;
图6是本申请实施例提供的一种生成调用链路的示意图;
图7是本申请实施例提供的一种数据处理方法的流程示意图;
图8是本申请实施例提供的一种展示调用链路的示意图;
图9是本申请实施例提供的一种调用链路的示意图;
图10是本申请实施例通过的一种展示目标业务模块的业务处理信息的示意图;
图11是本申请实施例提供的一种展示调用链路的示意图;
图12是本申请实施例提供的一种数据处理装置的结构示意图;
图13是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,图1是本申请实施例提供的一种数据处理系统的结构示意图。如图1所示,该数据处理系统可以包括服务器10和用户终端集群。该用户终端集群可以包括一个或者多个用户终端,这里将不对用户终端的数量进行限制。如图1所示,具体可以包括用户终端100a、用户终端100b、用户终端100c、…、用户终端100n。如图1所示,用户终端100a、用户终端100b、用户终端100c、…、用户终端100n可以分别与上述服务器10进行网络连接,以便于每个用户终端可以通过该网络连接与服务器10进行数据交互。
其中,该用户终端集群中的每个用户终端均可以包括:车载终端、智能手机、平板电脑、笔记本电脑、桌上型电脑、可穿戴设备、智能家居、头戴设备、车载终端等具有数据处理功能的智能终端。应当理解,如图1所示的用户终端集群中的每个用户终端均可以安装有应用客户端,当该应用客户端运行于各用户终端中时,可以分别与上述图1所示的服务器10之间进行数据交互。此处的应用客户端可以包括能够对业务进行处理的应用程序,如该应用客户端可以是指业务关联的小程序、网页或应用程序等等。
其中,如图1所示,该服务器10可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
为便于理解,本申请实施例可以在图1所示的多个用户终端中选择一个用户终端作为目标用户终端。例如,为便于理解,本申请实施例可以将图1所示的用户终端100a作为目标用户终端。当目标用户或者客户前端触发针对待处理的目标业务的目标处理请求时,目标用户终端可以接收待处理的目标业务的目标处理请求。该目标处理请求中携带目标业务的业务参数,该业务参数可以是指目标业务的业务类型、触发目标业务的对象信息、目标业务的具体业务值以及目标业务的来源信息等。目标用户终端接到该目标处理请求后,可以根据目标业务的业务参数确定用于处理该目标业务的目标业务模块,以及确定目标业务模块对应的目标代理服务进程。其中,目标代理服务进程可以是指一种流量代理服务,用于转发目标业务模块的所有通信信息。其中,目标业务模块所在目标系统中的路由文件均指向目标代理服务进程,因此目标代理服务进程可以获取到目标业务模块所在目标系统中的所有请求信息,可以理解的是,目标系统中的所有业务模块产生的请求信息,均由目标代理服务进程进行转发。其中,目标用户终端可以通过目标代理服务进程接收目标处理请求,目标代理服务进程接收到目标处理请求后,可以将目标处理请求转发至目标业务模块,这样,目标代理服务进程可以获取到目标业务模块所接收到的请求信息(即目标处理请求)。
进一步地,目标用户终端可以调用目标业务模块,根据目标处理请求处理目标业务,得到关于目标业务的目标处理结果。目标业务模块得到关于目标业务的目标处理结果后,可以将该目标处理结果发送给目标代理服务进程,目标代理服务进程可以将该目标处理结果返回给目标用户或者客户前端。进一步地,目标用户终端可以通过目标代理服务进程,获取到目标业务模块接收到的目标处理请求以及关于目标处理请求的目标处理结果。进一步地,目标用户终端可以获取与目标处理请求关联的请求对象的对象特征信息,以及获取目标处理请求对应的随机因子,该随机因子是随机生成的,具有不确定性。目标用户终端可以对随机因子和对象特征信息进行特征编码,得到目标业务模块的调用信息,该目标业务模块的调用信息用于指示目标业务模块在目标业务的处理过程中的调用顺序。目标用户终端可以将目标处理结果、目标处理请求以及目标业务模块的调用信息,发送给服务器10。服务器10可以根据目标处理结果、目标处理请求以及目标业务模块的调用信息,获取目标用户终端处理目标处理请求的处理过程,根据该目标处理请求的处理过程生成关于目标处理请求的调用链路。这样,通过目标代理服务进程获取目标业务模块所接收到的请求信息、针对目标处理请求所生成的目标处理结果以及目标业务模块对应的相关信息,无需对目标业务模块进行代码改造(即在目标业务模块中嵌入调用信息上报代码),没有业务侵入性,安全性较高,也可以降低调用链路的生成成本和维护成本,同时,由于目标代理服务进程具有语言无关性,能够适用于任何一种语言的应用服务的调用链路跟踪。另外,请求对象的对象特征信息用于反映请求对象的特有对象信息,不同请求对象的对象特征信息不相同,同时,不同处理请求对应的随机因子也不同。因此,目标业务模块的调用信息具有唯一性,进而基于该业务模块的调用信息生成的目标处理请求的调用链路也具有唯一性,提高调用链路的准确度。
为便于理解,进一步地,请参见图2,图2是本申请实施例提供的一种数据处理的应用场景示意图。其中,如图2所示的服务器20d可以为上述的服务器10,如图2所示的目标用户终端20a可以为上述图1中所展示的用户终端集群中的任意一个用户终端,例如,目标用户终端20a可以为上述用户终端100b。如图2所示,目标用户终端20a可以是指与目标用户20b关联的用户终端,如目标用户终端20a可以是指目标用户20b所持有的用户终端。
如图2以待处理的目标业务为对广告点击率排序的业务例进行说明,当目标用户20b想要查看广告点击率排序时,可以在目标用户终端20提供的展示界面中触发针对广告点击率排序业务20c的触发操作。目标用户终端20a可以获取目标用户20b针对广告点击率排序业务20c的触发操作,生成针对广告点击率排序业务20c的目标处理请求。该广告点击率排序业务20c的业务参数可以包括排序业务类型,目标用户终端20a可以根据该广告点击率排序业务20c所携带的排序业务类型,确定用于处理广告点击率排序业务20c的目标业务模块20e以及目标业务模块20e对应的目标代理服务进程20d。
进一步地,目标用户终端20a可以执行步骤1,向目标业务模块20e发送针对广告点击率排序业务的目标处理请求,目标代理服务进程20d可以接收到目标用户终端20a发送的针对广告点击率排序业务的目标处理请求。目标代理服务进程20d接收到目标处理请求后,可以获取目标处理请求关联的请求对象的对象特征信息以及目标处理请求对应的随机因子。其中,对象特征信息用于反映请求对象的对象特有信息,如对象标识、对象名称等生成目标处理请求的生成时间等。目标代理服务进程20d可以对随机因子和对象特征信息进行特征编码,得到目标业务模块20e的调用信息。这样,可以生成目标业务模块20e对应的位移调用信息,以便准确生成关于目标处理请求的调用链路。进一步地,目标代理服务进程20d可以执行步骤2,将接收到的广告点击率排序的目标处理请求,转发给目标业务模块20e。目标业务模块20e可以执行步骤3,根据目标处理请求对广告点击率排序业务进行处理,得到广告点击率排序结果。进一步地,目标业务模块20e可以执行步骤4,将广告点击率排序结果返回给目标代理服务进程20d,目标代理服务进程20d可以执行步骤5,将广告点击率排序结果转发给目标用户终端20a。同时,目标代理服务进程20d可以执行步骤6,将目标业务模块20e接收到的针对广告点击率排序业务的目标处理请求、目标业务模块20e生成的广告点击率排序结果以及目标业务模块20e的调用信息发送给服务器20f。另外,目标用户终端20a可以执行步骤7,将目标业务模块20e在处理目标处理请求时所产生的相关信息发送给服务器20f,该相关信息可以包括目标业务模块20e所产生的业务日志、目标业务模块20e的模块信息、目标业务模块20e的状态信息等。服务器20f接收到目标处理请求、广告点击率排序结果、目标业务模块20e的调用信息以及目标业务模块20e在处理目标处理请求时所产生的相关信息后,可以执行步8,根据目标处理请求、广告点击率排序结果、目标业务模块20e的调用信息以及目标业务模块20e在处理目标处理请求时所产生的相关信息,生成关于目标处理请求的调用链路。
其中,当需要查看关于目标处理请求的调用链路,以检查目标业务模块的运行情况时,可以触发针对关于目标处理请求的调用链路的查看操作,目标用户终端20a可以响应针对关于目标处理请求的调用链路的查看操作,向服务器20f发送针对关于目标处理请求的调用链路的获取请求。服务器20f接收到针对关于目标处理请求的调用链路的获取请求后,可以执行步骤9,向目标用户终端20a返回关于目标处理请求的调用链路。进一步地,目标用户终端20a可以执行步骤10,在调用信息展示界面20g中展示关于目标处理请求的调用链路。如图2所示,目标业务模块包括目标业务模块1、目标业务模块2以及目标业务模块3,关于目标处理请求的调用链路展示了目标用户终端20a调用了目标业务模块1处理广告点击率排序业务,目标业务模块1调用目标业务模块2和目标业务模块3来处理广告点击率排序业务。这样,无需对目标业务模块进行代码改造(即在目标业务模块中嵌入调用信息上报代码),且通过目标代理服务进程获取目标业务模块的调用信息以及目标业务模块对应的相关信息,没有业务侵入性,安全性较高,也可以降低调用链路的生成成本和维护成本,提高调用链路的生成效率。同时可以生成目标业务模块的唯一调用信息,以准确生成调用链路。
请参见图3,图3是本申请实施例提供的一种数据处理方法的流程示意图。该数据处理方法可由图1中的任一用户终端来执行,也可以由图1中的服务器来执行,还可以由图1中的任一用户终端和服务器共同执行,本申请中用于执行该方法的设备可以统称为计算机设备。如图3所示,该数据处理方法可以包括但不限于以下步骤:
S101,获取待处理的目标业务的目标处理请求。
具体的,当目标用户或者客户端实施针对待处理的目标业务的触发操作,以生成针对待处理的目标业务的目标处理请求,计算机设备可以响应针对待处理的目标业务的触发操作,获取待处理的目标业务的目标处理请求。其中,实施针对待处理的目标业务的触发操作的目标用户和客户端可以是指与目标处理请求关联的请求对象。其中,目标业务可以是指数据排序业务、数据拉取业务以及数据存储业务等等。该目标处理请求携带目标业务的业务参数,该业务参数可以是指目标业务的业务类型、目标业务的具体业务值、触发目标业务的对象信息以及目标业务的来源信息等参数。
S102,根据业务参数确定用于处理目标业务的目标业务模块,以及确定目标业务模块对应的目标代理服务进程。
具体的,计算机设备可以根据业务参数确定用于处理目标业务的目标业务模块,以及确定目标业务模块对应的目标代理服务进程。其中,目标代理服务进程可以是指流量代理服务traffic_proxy,计算机设备可以部署流量代理服务traffic_proxy,通过流量代理服务(即traffic_proxy),接管各个业务模块所在运行环境中的全部流量。可选的,计算机设备可以将该流量代理服务作为所有业务模块的目标代理服务进程,检测每个业务模块的端口,中转每个业务模块所产生的通信信息。其中,该流量代理服务也是一个多进程服务,一个进程服务检测一个业务模块的端口,即每个业务模块对应的进程服务为对应业务模块的目标代理服务进程。其中,业务模块所在目标系统的路由文件都指向目标代理服务进程,可以由目标代理服务进程转发对应业务模块所产生的请求信息。其中,流量代理服务traffic_proxy属于应用层服务,具有语言无关性,能够适用于任何一种语言的应用服务的调用链路跟踪。因此,本方案可以适用于任何一种语言的应用服务的调用链路跟踪,适用性较强。
可选的,计算机设备根据业务参数确定用于处理目标业务的目标业务模块,以及确定目标业务模块对应的目标代理服务进程的具体方式可以包括:根据业务参数,确定用于接入目标业务的第一业务模块,以及第一业务模块对应的第一代理服务进程。通过第一业务模块,根据业务参数以及第一业务模块的业务处理逻辑,确定目标业务在第一业务模块处理后的第一处理状态。若第一处理状态指示目标业务已处理完成,则将第一业务模块确定为目标业务模块,以及将第一代理服务进程确定为目标代理服务进程。若第一处理状态指示目标业务未处理完成,则确定目标业务中未处理完成的第一子业务,获取用于处理第一子业务的第二业务模块,以及第二业务模块对应的第二代理服务进程,根据第一业务模块以及第二业务模块确定目标业务模块,根据第一代理服务进程以及第二代理服务进程确定目标代理服务进程。
具体的,目标处理请求携带的业务参数包括目标业务的业务类型,计算机设备可以根据目标业务的业务类型确定用于接入目标业务的第一业务模块,该第一业务模块可以是指用户终端的请求入口,用于接收请求信息,如接入层。进一步地,计算机设备可以根据业务模块与代理服务进程之间的对应关系,获取第一业务模块对应的第一代理服务进程。进一步地,目标业务的业务参数可以包括目标业务的具体业务值,通过第一业务模块,根据目标业务的具体业务值以及第一业务模块的业务处理逻辑,确定目标业务在第一业务模块处理后的第一处理状态。若第一处理状态指示目标业务已经处理完成,则将第一业务模块确定为目标业务模块,以及将第一代理服务进程确定为目标代理服务进程。例如,第一业务模块用于接收目标处理请求,且对目标处理请求的合法性进行验证,当第一业务模块确定目标处理请求不具有合法性时,则第一处理状态指示目标业务已处理完成;当第一业务模块确定目标处理请求具有合法性时,则第一处理状态指示目标业务未处理完成。例如,第一业务模块可以是指对目标业务进行处理的业务模块,当第一业务模块对目标业务处理完成时,则确定第一处理状态指示目标业务已处理完成。
其中,若第一处理状态指示目标业务未处理完成,则确定目标业务中未处理完成的第一子业务,获取用于处理该第一子业务的第二业务模块,根据业务模块与代理服务进程之间的对应关系,确定第二业务模块对应的第二代理服务进程。计算机设备可以根据第一业务模块以及第二业务模块确定目标业务模块,根据第一代理服务进程以及第二代理服务进程确定目标代理服务进程。可以理解的是,计算机设备可以根据第二业务模块在处理第一子业务时是否需要调用其他业务模块来确定目标业务模块,若第二业务模块在处理第一子业务时不需要调用其他业务模块,则将第一业务模块和第二业务模块确定为目标业务模块;若第二业务模块在处理第一子业务时需要调用其他业务模块,则根据第一业务模块、第二业务模块以及其他业务模块确定为目标业务模块。目标业务模块是指计算机设备处理目标处理请求时所调用的业务模块,因此,计算机设备可以获取处理目标处理请求时所调用的业务模块作为目标业务模块。
可选的,计算机设备根据第一代理服务进程以及第二代理服务进程确定目标代理服务进程的具体方式可以包括:计算机设备可以通过第二业务模块,根据业务参数以及第二业务模块的业务处理逻辑,确定目标业务在第二业务模块处理后的第二处理状态。若第二处理状态指示目标业务处理完成,则将第一业务模块以及第二业务模块确定为目标业务模块,将第一代理服务进程和第二代理服务进程确定为目标代理服务进程。可以理解的是,当第二业务模块对目标业务中未处理完成的第一子业务均处理完成时,则确定第二处理状态指示目标业务已处理完成,此时,可以将处理目标处理请求时所调用的第一业务模块和第二业务模块确定为目标业务模块,以及将第一代理服务进程和第二代理服务进程确定为目标代理服务进程。若第二业务模块在处理第一子业务时,需要调用其他业务模块来协助处理第一子业务,则确定第二处理状态指示目标业务未处理完,计算机设备可以确定目标业务中未处理完成的第二子业务(即第二业务模块在处理第一子业务时需要调用其他业务模块来处理的业务),获取用于处理第二子业务的第三业务模块。进一步地,计算机设备可以根据业务模块与代理服务进程之间的对应关系,确定第三业务模块对应的第三代理服务进程。计算机设备可以根据第一业务模块、第二业务模块以及第三业务模块确定目标业务模块,根据第一代理服务进程、第二代理服务进程以及第三代理服务进程确定目标代理服务进程。同样的,计算机设备可以检测第三业务模块在处理第二子业务时是否需要调用其他业务模块,直到确定计算机设备处理目标处理请求时所调用的业务模块,作为目标业务模块。
S103,通过目标代理服务进程,将目标处理请求转发至目标业务模块,调用目标业务模块,根据目标处理请求处理目标业务,得到关于目标业务的目标处理结果。
S104,获取目标处理请求关联的请求对象的对象特征信息以及目标处理请求对应的随机因子,对随机因子和对象特征信息进行特征编码,得到目标业务模块的调用信息。
具体的,计算机设备可以通过目标代理服务进程,获取到目标处理请求,并将目标处理请求转发给目标业务模块。计算机设备可以调用目标业务模块,根据目标处理请求对目标业务进行处理,得到关于目标业务的目标处理结果。进一步地,目标业务模块可以将目标处理结果返回给目标代理服务进程,由目标代理服务进程向目标用户或者客户端转发目标处理结果。这样,通过目标代理服务进程便可以获取到关于目标业务模块的目标业务模块接收到的目标处理请求以及目标业务模块生成的目标处理结果,而不用在目标业务模块中嵌入调用数据上报代码,没有业务侵入性,安全性较高,成本较低且效率较高。
具体的,计算机设备可以获取目标处理请求关联的请求对象的对象特征信息,以及获取目标处理请求对应的随机因子。该请求对象可以是指实施针对待处理的目标业务的触发操作的目标用户和客户端,对象特征信息用于反映请求对象的特有对象信息,如对象标识、对象名称以及生成目标处理请求的生成时间等。计算机设备可以对随机因子以及对象特征信息进行特征编码,得到目标业务模块的调用信息,该目标业务模块的调用信息用于指示目标业务模块在目标业务的处理过程中的调用顺序。该目标业务模块的调用信息用于反映目标业务模块在目标业务的处理过程中的调用顺序,以便后续根据该调用顺序准确生成关于目标处理请求的调用链路。其中,目标业务模块的调用信息可以是指目标业务模块的注释(即Annotation),用来记录目标处理请求的特定事件相关信息,目标业务模块的调用信息还可以包括目标处理请求的请求标识、目标处理结果的结果标识、请求返回码、请求来源主机IP等等。
可选的,当目标业务模块包括第一业务模块(即目标业务模块仅为第一业务模块)时,计算机设备得到关于目标业务的目标处理结果的具体方式可以包括:通过第一代理服务进程,将目标处理请求转发至第一业务模块,调用第一业务模块,根据目标处理请求对目标业务执行接入预处理,得到第一处理结果。将第一处理结果确定为关于目标业务的目标处理结果。
具体的,计算机设备可以通过第一代理服务进程接收到目标处理请求,检测该目标处理请求中是否携带关于目标处理请求的链路标识,若目标处理请求中携带关于目标处理请求的链路标识,则说明由目标用户或者客户端实施针对待处理的目标业务的触发操作时,便生成目标处理请求的链路标识。其中,可以由目标用户关联的目标用户终端或者客户端获取目标处理请求关联的请求对象(即目标用户、目标用户终端或者客户端等)的对象特征信息,以及获取目标处理请求对应的随机因子,对随机因子和对象特征信息进行特征编码,生成目标处理请求的链路标识,第一代理服务进程不需要生成关于目标处理请求的链路标识。其中,链路标识是指关于目标处理请求的调用链路的标识(即Traceid),一个链路标识对应一个处理请求,用于唯一标识目标处理请求所经过的所有目标业务模块(即所经过的上下游模块)。计算机设备可以根据各个目标业务模块中的链路标识、调用标识以及父节点标识,将整个调用链路串联起来,形成调用链树。其中,第一代理服务进程可以生成第一业务模块的调用标识,对第一业务模块的调用标识以及目标处理请求中携带的链路标识进行组合,得到第一业务模块的调用信息,该第一业务模块的调用信息用于指示第一业务模块在目标业务的处理过程中的调用顺序。
具体的,若目标处理请求中不存在关于目标处理请求的链路标识,则计算机设备可以通过第一代理服务进程获取目标处理请求关联的请求对象(即目标用户、目标用户终端或者客户端等)的对象特征信息,以及获取目标处理请求对应的随机因子,对随机因子和对象特征信息进行特征编码,生成目标处理请求的链路标识。同时,由于第一业务模块为计算机设备处理目标处理请求时所调用的第一个业务模块,第一业务模块通过第一代理服务进程随机生成第一业务模块的调用标识,对目标处理请求的链路标识以及第一业务模块的调用标识进行组合,得到第一业务模块的调用信息。
由于第一业务模块为计算机设备处理目标处理请求时所调用的第一个业务模块,因此,第一业务模块的节点为关于目标处理请求的调用链路的根节点。其中,目标业务模块的调用标识(即spanId)是组成调用链路的基础单元,处理目标处理请求时所调用的一个目标业务模块对应一个调用标识,用于反映目标业务模块在目标业务的处理过程中的调用顺序。计算机设备可以通过第一代理服务进程将该目标处理请求转发给第一业务模块,第一业务模块接收到目标处理请求后,计算机设备可以调用第一业务模块,根据目标处理请求对目标业务执行接入预处理,得到第一处理结果,将第一处理结果确定为关于目标业务的目标处理结果。其中,第一业务模块可以是指接入验证模块,接入预处理可以包括验证处理,第一处理结果可以是指目标处理请求不具有合法性。可以理解的是,当第一业务模块确定目标处理请求不具有合法性时,则不会调用第二业务模块处理目标处理请求,目标业务模块仅包括第一业务模块,目标处理结果为目标处理请求不具有合法性。其中,第一业务模块也可以是指参数检查模块,用于检查目标处理请求中携带的请求参数是否符合通信协议规定。
可选的,目标业务模块的数量为一个,目标业务模块包括第一业务模块时,计算机设备生成目标业务模块的调用信息的具体方式可以包括:计算机设备可以将目标处理请求存储至区块链网络中的目标区块中,一个处理请求对应一个区块,即每个处理请求对应的目标区块不同。进一步地,计算机设备可以获取目标区块的区块信息,根据该目标区块的区块信息生成目标处理请求对应的随机因子。其中,计算机设备可以获取目标区块的头哈希值,对该头哈希值进行随机运算,得到目标处理请求对应的随机因子。计算机设备可以获取目标处理请求关联的请求对象的对象特征信息,该对象特征信息包括对象标识、对象名称以及生成目标处理请求的生成时间等。计算机设备可以对对象特征信息进行哈希编码,得到请求对象的对象哈希编码值,对随机因子以及对象哈希编码值进行组合,得到关于目标处理请求的链路标识,该链路标识用于确定在处理目标处理请求时所调用的业务模块。其中,可以通过由请求对象关联的目标用户终端或者客户端,生成关于目标处理请求的链路标识,将链路标识添加至目标处理请求中,或者,请求对象关联的目标用户终端或者客户端没有生成关于目标处理请求的链路标识时,即目标处理请求中未携带链路标识时,则计算机设备可以通过第一代理服务进程,对随机因子以及对象哈希编码值进行组合,得到关于目标处理请求链路标识。同时,在第一代理服务进程接收到目标处理请求时,则可以通过第一代理服务进程生成第一业务模块的调用标识,将关于目标处理请求的链路标识和第一业务模块的调用标识,确定为第一业务模块的调用信息。
可选的,计算机设备通过第一代理服务进程生成第一业务模块的调用标识的具体方式可以包括:第一代理服务进程可以从有顺序的序号中随机挑选一个序号作为第一业务模块的调用标识。其中,有顺序的序号包括一种或者多种类型的序号,如1,2,3…、a,b,c…等。如,第一业务模块的调用标识可以是指01或者a等。可选的,计算机设备通过第一代理服务进程,根据调用链路随机生成第一业务模块的调用标识。具体的,计算机设备可以第一代理服务进程可以从有顺序的序号中随机挑选一个序号作为目标序号,对目标序号和调用标识进行组合,得到第一业务模块的调用标识。例如,链路标识可以为X,目标序号为01,则第一业务模块的调用标识为X01。
可选的,当目标业务模块包括第一业务模块和第二业务模块时,计算机设备得到关于目标业务的目标处理结果的具体方式可以包括:计算机设备可以通过第一代理服务进程接收目标处理请求,生成第一业务模块的第一调用信息,以及将目标处理请求转发给第一业务模块,第一业务模块接收到目标处理请求后,计算机设备可以调用第一业务模块,根据目标处理请求对目标业务执行接入预处理,得到第一处理结果。在获取到第一处理结果后,计算机设备可以通过第一业务模块,生成关于第一子业务的第一子处理请求。该第一子处理请求携带第一业务模块的第一调用信息以及关于第一子业务的业务参数,第一调用信息用于指示第一业务模块在目标业务的处理过程中的调用顺序。这样,第二业务模块接收到第一子处理请求时,根据第一子处理请求中的第一调用信息生成关于第二业务模块的第二调用信息。进一步地,计算机设备可以通过第二代理服务进程,将第一子处理请求发送至第二业务模块,第二业务模块接收到第一子处理请求后,计算机设备可以调用第二业务模块,根据第一子处理请求对第一子业务执行业务处理,得到第二处理结果。
其中,第二代理服务进程接收到第一子处理请求时,可以从第一子处理请求中获取到第一业务模块的第一调用信息,该第一调用信息包括第一业务模块的调用标识以及关于目标处理请求的链路标识,进一步地,第二代理服务进程可以根据第一调用信息生成第二业务模块的第二调用信息。进一步地,第二业务模块可以将第二处理结果发送给第二代理服务进程,第二代理服务进程可以将第二处理结果转发给第一代理服务进程,第一代理服务进程可以将第二处理结果转发给第一业务模块。第一业务模块可以根据第一处理结果和第二处理结果,生成关于目标业务的目标处理结果,具体生成目标处理结果的方式可以根据具体情况具体设置。如,计算机设备可以通过第一业务模块,对第一处理结果和第二处理结果进行组合,得到关于目标业务的目标处理结果。
可选的,计算机设备通过第一业务模块生成关于第一子业务的第一子处理请求后,可以通过第一业务模块,将第一子处理请求发送给第一代理服务进程,第一代理服务进程可以接收第一业务模块发送的第一子处理请求,将第一子处理请求转发给第二代理服务进程。在第二代理服务进程接收到第一子处理请求后,第二代理服务进程可以将第一子处理请求转发给第二业务模块。这样,由各个目标业务模块对应的目标代理服务进程转发对应业务模块的调用信息(即请求信息),便可以获取到各个目标业务模块的调用信息,而不用在各个目标业务模块中嵌入调用数据上报代码,安全性较高,同时,各个目标业务模块的调用信息的获取效率较高。
可选的,当目标业务模块包括第一处理模块、第二业务模块以及第三业务模块时,计算机设备得到关于目标业务的目标处理结果的具体方式可以包括:计算机设备可以通过第一代理服务进程接收目标处理请求,并将目标处理请求转发给第一业务模块,第一业务模块接收到目标处理请求后,计算机设备可以调用第一业务模块,根据目标处理请求对目标业务执行接入预处理,得到第一处理结果。同时,计算机设备可以生成第一业务模块的调用信息,具体内容可以参见上述第一业务模块的调用信息的生成过程,在此不再赘述。在获取到第一处理结果后,计算机设备可以通过第一业务模块,生成关于第一子业务的第一子处理请求。该第一子处理请求携带第一业务模块的第一调用信息以及关于第一子业务的业务参数,第一调用信息用于指示第一业务模块在目标业务的过程中的调用顺序。这样,第二业务模块接收到第一子处理请求时,根据第一子处理请求中的第一调用信息生成关于第二业务模块的第二调用信息。进一步地,计算机设备可以通过第二代理服务进程,将第一代理服务进程发送至第二业务模块,第二业务模块接收到第一子处理请求后,计算机设备可以调用第二业务模块,根据第一子处理请求对第一子业务执行业务处理,得到第二处理结果。在获取到第二处理结果后,计算机设备可以通过第二业务模块,生成关于目标业务中未处理完成的第二子业务的第二子处理请求。
进一步地,第二业务模块可以将第二子处理请求发送给第二代理服务进程,第二代理服务进程接收到第二子处理请求后,可以将第二子处理请求转发给第三代理服务进程。第三代理服务进程可以根据第二子处理请求中的第二业务模块的第二调用信息,生成第三业务模块的第三调用信息。同时,第三代理服务进程可以将第二子处理请求转发给第三业务模块,第三业务模块接收到第二子处理请求后,计算机设备可以通过第三业务模块根据第二子处理请求对第二子业务执行业务处理,得到第三处理结果,并确定目标业务中不存在未处理完成的业务。进一步地,第三业务模块可以将第三处理结果发送给第三代理服务进程,第三代理服务进程可以将第三处理结果返回给第二代理服务进程,第二代理服务进程可以将第三处理结果返回给第二业务模块。计算机设备可以通过第二业务模块,根据第二处理结果以及第三处理结果,生成初始处理结果,并将初始处理结果发送给第二代理服务进程,第二代理服务进程可以将初始处理结果发送给第一代理服务进程,第一代理服务进程可以将初始处理结果转发给第一业务模块。第一业务模块接收到初始处理结果后,计算机设备可以通过第一业务模块,根据初始处理结果以及第一处理结果,生成关于目标业务的目标处理结果。
可选的,计算机设备生成第一子业务的第一子处理请求的具体方式可以包括:通过第一业务模块,生成关于第一子业务的初始子处理请求,将初始子处理请求发送给第一代理服务进程,初始子处理请求携带关于第一子业务的业务参数。通过第一代理服务进程,将第一业务模块的第一调用信息添加至初始子处理请求中,得到关于第一子业务的第一子处理请求。
具体的,计算机设备通过第一业务模块,将第一子业务添加至请求体,生成关于第一子业务的初始子处理请求,该初始子处理请求携带关于第一子业务的业务参数。第一业务模块将初始子处理请求发送给第一代理服务进程,由于第一代理服务进程在接收到目标处理请求时,已经生成关于第一业务模块的第一调用信息。第一代理服务进程可以将第一业务模块的第一调用信息添加至初始子处理请求的请求体中,得到第一子业务的第一子处理请求。这样,通过各个目标业务模块对应的代理服务进程,生成关于各个业务模块的调用信息,安全性较高且效率较高。
同样的,计算机设备生成第二子处理请求时,计算机设备可以通过第二业务模块,将第二子业务添加至请求体,生成关于第二子业务的候选子处理请求,该候选子处理请求中携带第二子业务的业务参数。进一步地,第二业务模块可以将该候选子处理请求发送给第二代理服务进程,由于第二代理服务进程在接收到第一子处理请求时,根据第一业务模块的第一调用信息生成第二业务模块的第二调用信息。因此第二代理服务进程可以将第二业务模块的第二调用信息添加至候选子处理请求的请求头中,得到第二子处理请求。这样,第三代理服务进程接收到第二子处理请求后,可以根据第二子处理请求中的第二调用信息,生成第三业务模块的第三调用信息。
可选的,目标业务模块的数量为M个时,M为大于或者等于2的正整数,如M可以为2,3,4…。M个目标业务模块包括目标业务模块Mi和目标业务模块Mj,目标业务模块Mi的调用顺序位于目标业务模块Mj的调用顺序之前,且目标业务模块Mi与目标业务模块Mj之间具有调用关系。其中,i、j为小于或等于M的正整数,i与j不相同,如i为1,j为2。计算机设备生成目标业务模块的调用信息可以包括:计算机设备可以获取关于目标处理请求的链路标识,该目标处理请求的链路标识是对随机因子和对象特征信息进行特征编码得到的,链路标识用于确定在处理目标处理请求时所调用的业务模块,具体内容可以参见上述获取链路标识的内容,在此不再赘述。进一步地,计算机设备可以通过目标业务模块Mi对应的代理服务进程生成目标业务模块Mi的调用标识,作为第一调用标识,调用标识的生成方式可以参考上述第一业务模块的调用标识的生成方式,在此不再赘述。其中,若目标业务模块Mi为计算机设备处理目标处理请求时所调用的第一个目标业务模块时,链路标识可以由目标业务模块Mi对应的代理服务进程编码生成,也可以从目标处理请求中获取。若目标业务模块Mi为计算机设备处理目标处理请求时所调用的除第一个目标业务模块之外的其他目标业务模块时,链路标识可以从调用业务模块(即调用目标业务模块Mi的目标业务模块)的调用信息中获取。
进一步地,计算机设备可以通过目标业务模块Mi对应的代理服务进程,根据第一调用标识和链路标识,生成目标业务模块Mi的调用信息。具体的,当目标业务模块Mi为计算机设备处理目标处理请求时所调用的第一个目标业务模块时,则目标业务模块Mi为调用链路的根节点,因此目标业务模块Mi对应的代理服务进程可以对链路标识以及第一调用标识进行组合,得到目标业务模块Mi的调用信息。若目标业务模块Mi为计算机设备处理目标处理请求时所调用的除第一个目标业务模块之外的其他目标业务模块时,则目标业务模块Mi为调用链路的叶子节点,因此目标业务模块Mi对应的代理服务进程可以获取目标业务模块Mi的调用业务模块(即调用目标业务模块Mi的目标业务模块)的调用标识,对链路标识、调用业务模块的调用标识以及第一调用标识进行组合,得到目标业务模块Mi的调用信息。进一步地,通过目标业务模块Mj对应的代理服务进程,生成第一调用标识的子调用标识,将子调用标识确定为目标业务模块Mj对应的第二调用标识。如第一调用标识为01或者X01时,第一调用标识的子调用标识为02或者X02,第一调用标识为第二调用标识的父节点标识。进一步地,目标业务模块Mj对应的代理服务进程对第一调用标识、第二调用标识以及链路标识进行组合,得到目标业务模块Mj的调用信息。
可选的,计算机设备通过目标代理服务进程接收到目标处理请求时,可以采取屏蔽策略对目标处理请求进行控制,如对具有高风险的目标处理请求进行屏蔽(不转发),避免高风险的处理请求对业务模块的正常业务处理产生干扰,进而可以实现生成具有安全性的调用链路。具体的,屏蔽策略可以包括IP屏蔽、信息获取业务模块屏蔽以及指定业务模块屏蔽等等。其中,IP屏蔽是指将信任的业务模块的IP地址加入白名单,只对白名单内的业务模块产生的处理请求进行转发,对白名单外的业务模块产生的处理请求默认屏蔽不进行转发。例如在生成测试环境中的调用链路时,则将测试环境中的业务模块的IP加入白名单,当目标代理服务进程接收到目标处理请求时,可以获取该目标处理请求的来源IP,若该来源IP不属于白名单,则进行屏蔽不进行转发;若该来源IP属于白名单,则进行转发给目标业务模块。其中,信息获取业务模块屏蔽是针对信息获取业务模块,该信息获取业务模块可以是指用户信息获取业务模块,当该用户信息获取业务模块生成目标用户的用户信息的获取处理请求时,目标代理服务进程接收到该获取请求时,则不进行转发,可以避免用户信息泄露的风险。其中,指定业务模块屏蔽是指维护一个黑名单,对黑名单内的业务模块产生的处理请求不进行转发。例如,业务模块Q1为黑名单内的业务模块,则当目标代理服务进程确定目标处理请求为业务模块Q1产生的处理请求时,则进行屏蔽不转发。
可选的,计算机设备可以设置不同环境对应不同代理服务进程,如测试环境对应一个代理服务进程,用于转发测试环境中业务模块产生的处理请求,协助生成测试环境中的调用链路。生产环境对应一个代理服务进程,用于转发生产环境中业务模块产生的处理请求,协助生成生产环境中的调用链路。这样,可以将各个环境中的流量(处理请求)分隔开,避免相互污染,即避免测试环境中的处理请求进入生产环境中,或者,生产环境中的处理请求进入测试环境中,造成相互写污染。
S104,根据目标处理结果、目标处理请求以及目标业务模块的调用信息,生成关于目标处理请求的调用链路;调用链路用于反映目标处理请求的处理过程。
具体的,计算机设备可以根据目标处理结果、目标处理请求以及目标业务模块的调用信息,生成关于目标处理请求的调用链路。其中,计算机设备还可以获取目标业务模块在处理目标处理请求时所产生的相关信息,该相关信息可以包括业务日志、响应时间、处理时间以及目标业务模块的处理状态等,将该相关信息添加至目标处理请求的调用链路中。其中,关于目标处理请求的调用链路用于反映目标处理请求的处理过程,即反映计算机设备处理目标处理请求时所调用的目标业务模块,以及目标业务模块所产生的调用信息。通过该关于处理请求的调用链路,可以检测各个目标业务模块的运行状态是否异常,并确定出异常的目标业务模块,以便检测出系统中异常的业务模块,可以提高测试效率。
可选的,计算机设备生成关于目标处理请求的调用链路的具体方式可以包括:获取目标业务模块的调用信息;目标业务模块的调用信息用于反映目标业务模块在目标业务的处理过程中的调用顺序。根据目标业务模块的调用信息生成初始调用链树;初始调用链树包括用于反映目标业务模块的节点。根据目标处理结果和目标处理请求,生成目标业务模块针对目标处理请求的业务处理信息。将业务处理信息与目标业务模块的节点进行关联,得到目标调用链树,将目标调用链树确定为关于目标处理请求的调用链路。
具体的,计算机设备可以根据目标业务模块的调用信息生成关于目标处理请求的初始调用链树,该初始调用链树中包括用于反映目标业务模块的节点。其中,目标业务模块的调用信息反映了目标业务模块在目标业务的处理过程中调用顺序,因此可以根据该调用顺序,对目标业务模块对应的节点进行连接,生成关于目标处理请求的初始调用链树。进一步地,计算机设备可以通过目标代理服务进程获取到目标业务模块接收到的目标处理请求以及目标业务模块生成的目标处理结果,根据目标处理请求以及目标处理结果,生成目标业务模块针对目标处理请求的业务处理信息。可以理解的是,该业务处理信息是指目标业务模块处理目标处理请求时所产生的相关信息,可以通过该业务处理信息,检测目标业务模块是否存在异常。
进一步地,计算机设备可以将业务处理信息与目标业务模块的节点关联,得到目标调用链树,将目标调用链树确定为关于目标处理请求的调用链路。这样,通过目标代理服务进程获取到目标业务模块的目标业务模块接收到的请求信息(目标处理请求)以及目标业务模块返回的目标处理结果,同时生成目标业务模块的调用信息,而不用在目标业务模块中嵌入调用数据上报代码,安全性较高。同时在目标业务模块中嵌入调用数据上报代码,在存在大量目标业务模块时,调用数据上报代码的嵌入成本和维护成本较高,本申请通过目标代理服务进程,可以降低生成,同时提高调用链路的生成效率。
可选的,目标业务模块的数量可以为M个,M为大于或者等于2的正整数,如M可以取值为2,3,4…。其中,M个目标业务模块中包括目标业务模块Mi和目标业务模块Mj,目标业务模块Mi的调用顺序位于目标业务模块Mj的调用顺序之前,且目标业务模块Mi与目标业务模块Mj之间具有调用关系,i、j为小于或等于M的正整数,i与j不相同。可以理解的是,目标业务模块Mi在处理目标业务时调用了目标业务模块Mj。初始调用链树中包括第一节点和第二节点,第一节点用于反映目标业务模块Mi,第二节点用于反映目标业务模块Mj。由于目标业务模块Mi在处理目标业务时调用了目标业务模块Mj,因此,第一节点为第二节点的父节点。
如图4所示,图4是本申请实施例提供的一种生成调用信息的示意图,如图4所示,目标业务模块Mi对应目标代理服务进程为目标业务模块Mi向目标业务模块Mj转发处理请求时,可以将目标业务模块Mi的调用标识以及链路标识添加至处理请求中,转发给目标业务模块Mj,实现调用链路的跟踪。如图4所示,请求头包括头块和多个数据块,第一代理服务进程可以将目标业务模块Mi的调用标识以及链路标识添加至数据块中块字段为用户文本字段(即usercookie字段)中。其中,usercookie字段中的键(即Key)为文本文件标识(即usercookie标识),usercookie字段的类型(即type)为透传范围,即可以随请求透传给下游,usercookie字段中的值(即Value)为由第一代理服务进程自定义对应目标业务模块的调用标识,以及将对应的目标业务模块的调用标识以及链路标识岁请求透传给下游。可以理解的是,调用链路保持不变,由代理服务进程动态生成对应业务模块的调用标识。
可选的,计算机设备生成目标业务模块针对目标处理请求的业务处理信息的具体方式可以包括:获取目标业务模块处理目标处理请求时所产生的目标业务日志。通过目标代理服务进程,上报目标业务模块所接收到的目标处理请求以及目标业务模块针对目标处理请求所生成目标处理结果。对目标业务日志、目标处理请求以及目标处理结果进行关联组合,得到目标业务模块针对目标处理请求的业务处理信息。
具体的,计算机设备可以获取目标业务模块在处理目标处理请求时所产生的目标业务日志,通过目标代理服务进程上报目标业务模块所接收得到目标处理请求,以及目标业务模块针对目标处理请求所产生的目标处理结果。进一步地,计算机设备可以对目标业务日志、目标处理结果以及目标处理请求进行关联组合,得到目标业务模块针对目标处理请求的业务处理信息。例如,当目标业务模块包括第一业务模块、第二业务模块以及第三业务模块时,第一业务模块针对目标处理请求的业务处理信息包括第一业务模块处理目标处理请求时所产生的业务日志、第一业务模块接收到的目标处理请求,以及第一业务模块针对目标处理请求所返回的目标处理结果。第二业务模块针对目标处理请求的业务处理信息包括第二业务模块在处理第一子处理请求时所产生的业务日志、第二业务模块接收到的第一子处理请求,以及第二业务模块针对第一子处理请求所返回的初始处理结果。第三业务模块针对目标处理请求的业务处理信息包括第三业务模块处理第三子处理请求时所产生的业务日志、第三业务模块处理接收到的第二子处理请求以及第三业务模块针对第二子处理请求所返回的第三处理结果。
可选的,计算机设备可以获取目标业务模块在处理目标处理请求时所产生的业务日志的日志类型,根据该业务日志的日志类型,对目标业务模块在处理目标处理请求时所产生打的业务日志进行采集,得到目标业务日志。其中,业务日志的日志类型可以包括静态日志类型,该静态日志类型的业务日志是指目标业务模块中产生的日志文件和Nginx日志等。其中,目标业务模块中产生的日志文件是指目标业务模块中各种事件对应的日志数据,目标业务模块中产生的Nginx日志包括目标业务模块的访问日志数据和错误日志数据(即出错时的日志数据)。业务日志的日志类型可以包括转发日志类型,具有该转发日志类型的业务日志可以是指目标代理服务进程转发目标业务模块的请求信息或者结果信息时所产生的日志数据。业务日志的日志类型可以包括请求日志类型,具有该请求日志类型的业务日志可以是指目标业务模块的明文请求日志。业务日志的日志类型可以包括交互日志类型,具有该交互日志类型的业务日志可以是指与目标用户进行交互时所产生的日志数据。例如,在广告业务处理模块中,与目标用户进行交互时所产生的日志数据可以是指向目标用户曝光的广告数据、目标用户点击的广告数据等。本申请通过针对多样的业务日志采用对应的采集策略进行采集,适用性强,能采集到不同形式、不同结构的业务日志,在减少业务侵入性和减少人工成本的同时,根据业务日志的日志类型,因地制宜地选取对应的采集策略,可以提高业务日志采集的效率。
可选的,计算机设备采集目标业务日志的具体方式可以包括:若业务日志的日志类型为静态日志类型,则通过日志采集组件对属于静态日志类型的业务日志进行采集,得到目标业务日志。若业务日志的日志类型为转发日志类型,则通过目标代理服务进程,对属于转发日志类型的业务日志进行采集,得到目标业务日志。若业务日志的日志类型为请求日志类型,则通过异步进程,对属于请求日志类型的业务日志进行采集,得到目标业务日志。若业务日志的日志类型为交互日志类型,则通过日志消费任务,对属于交互日志类型的业务日志进行采集,得到目标业务日志。
具体的,当业务日志的日志类型为静态日志类型时,计算机设备可以通过日志采集组件,将目标业务模块在处理目标处理请求时所生成的业务日志进行日志信息结构化,同时结合一定的过滤规则筛选掉无效的日志信息,得到目标业务日志,可以减少人工进行日志信息确定的成本。当业务日志的日志类型为转发日志类型,即目标代理服务进程转发目标业务模块的通信信息所产生的业务日志,计算机设备可以通过目标代理服务进程自动上报属于转发日志类型的业务日志,得到目标业务日志。当业务日志的日志类型为请求日志类型时,即目标业务模块的明文请求日志,由于目标代理服务进程转发目标业务模块的明文请求信息(即数据包)时,会将明文请求信息写入异步进程。则计算机设备可以在异步进程中对目标业务模块的明文请求信息进行解析,得到目标业务日志。当业务日志的日志类型为交互日志类型,即上传到大数据消息队列TDbank(一种存储消息的队列)中的日志数据,计算机设备可以通过日志消费任务,对属于交互日志类型的业务日志进行采集,得到目标业务日志。其中,日志消费任务可以是指sparkstreaming实时消费任务,该sparkstreaming实时消费任务是指一种实时计算框架,处理流式任务,可以实时将日志数据分成微小的批次进行处理,因此日志数据开始消费时,需预知每个批次的边界,即每个批次需要获取的日志数据条数。这样,不同日志类型的业务日志采用不同的采集策略进行采集,通用性较强,且减少人工成本,提高业务日志采集效率。
其中,目标代理服务进程可以将目标业务模块的数据包(即请求包和返回包)上传至异步进程中,计算机设备可以根据业务协议结构解出数据包中的业务数据。该出数据包中的业务数据是指整个调用链路经过的所有目标业务模块的请求包req1、req2...reqN,返回包resp1、resp2...respN,调用标识IDspanid1、spanid2...spanidN和对应的父节点标识ID pspanid1、pspanid2...pspanidN等,以及关于目标处理请求的链路标识traceid。其中,计算机设备可以protobuf(一种数据格式)的ParseFromString函数(一种将数据包里面的数据反序列化(解析)到指定的消息结构类中的函数)和预先编译好的pb文件(一种表示模型(神经网络)结构的二进制文件,不带有源代码,也一般无法映射成源代码),解析获取数据包体内容。其中,计算机设备可以将数据包中的业务数据给es作为统一存储,便于后续对调用链路进行可视化。其中,本方案中流量代理可以不局限于目标系统中测试环境的流量,在业务允许的情况下,可以将一部分低风险的现网流量也接入该流量代理服务中,可以高效地定位部分线上问题。
如图5所示,图5是本申请实施例提供的一种调用链路生成的系统架构图,如图5所示,调用链路生成的系统架构主要包括数据源、数据处理、数据存储以及数据应用四个部分。如图5所示,数据源包括目标业务模块内产生的Nginx日志、目标业务模块容器内日志、目标代理服务进程产生的代理日志(即中转日志)、业务模块之间通信产生的包请求信息以及上传到大数据消息队列中的队列日志。计算机设备可以根据各个数据的类型,采用适宜的采集策略进行采集,如图5所示,在数据处理时,计算机设备可以采用日志采集组件采集目标业务模块中产生的Nginx日志以及目标业务模块容器内日志,通过让目标代理服务进程主动上报方式,获取到目标代理服务进程转发目标业务模块的通信信息时所产生的代理日志。计算机设备可以通过目标代理服务进程将各个目标业务模块的包请求信息(即目标业务模块接收到的请求以及目标业务模块针对接收到的请求所返回的处理结果),上传至异步进程中,在异步进程中对包请求信息进行解析,得到包请求中的业务数据,包括目标处理请求对应的调用链路所经过的所有模块的包请求信息。计算机设备可以通过sparkstreaming实时消费任务,获取到上传到大数据消息队列中的队列日志。
进一步地,计算机设备可以将上述获取到的数据源进行数据存储,如图5所示,计算机设备可以将获取到的数据源上传至ES(Elasticsearch,一种分布式的数据存储、检索服务,可以快速实时地存储、搜索、分析大数据)进行统一存储。如图5所示,在数据应用时,计算机设备可以实现调用链路日志检索、全流量抓包、调用链路分析、数据透视、一键生成测试用例、一键Mock数据以及一键重放。其中,调用链路日志检索是指可以实现检索到调用链路中任意目标业务模块对应的目标业务日志。其中,计算机设备可以流量代理服务(即目标代理服务进程)实现全流量抓包,即获取到目标业务模块对应的请求包和返回包。计算机设备还可以对调用链路进行分析,实现展示调用链路中异常节点以及异常调用等功能,计算机设备还可以展示数据源中的所有数据,实现数据透析。具体的,一键生成测试用例是指根据调用链路生成关于目标处理请求的请求处理测试用例,这样,可以改变目标处理请求的请求参数,得到更新处理请求,根据更新处理请求和请求处理测试用例便可以得到关于更新处理请求的处理结果,可以提高测试效率。其中,Mock数据是指模拟一个目标业务模块的返回结果,一键生成Mock数据是指模拟一个目标业务模块的返回结果,这样,可以向目标业务模块发送模拟请求,计算机设备可以模拟目标业务模块的处理逻辑,生成关于模拟请求的返回结果。其中,请求处理过程重放是指对计算机设备对处理目标处理请求的调用处理过程进行重现。
如图6所示,图6是本申请实施例提供的一种生成调用链路的示意图,如图6所示,目标业务模块包括第一业务模块、第二业务模块以及第三业务模块,第一业务模块对应第一代理服务进程,第二业务模块对应第二代理服务进程,第三业务模块对应第三代理服务进程。如图6所示,第一代理服务进程可以接收到目标处理请求,生成第一业务模块的调用信息,该第一业务模块的调用信息可以包括链路标识、调用标识以及父节点标识,还可以包括目标处理请求的请求标识等相关信息。其中,链路标识为X,该链路标识可以由请求发起者生成(即目标处理请求携带链路标识),当目标处理请求中不携带链路标识时,则由第一代理服务进程生成。其中,调用标识为XXa,可以由第一代理服务进程随机生成或者根据链路标识生成。其中,由于第一业务模块为计算机设备处理目标处理请求时所调用的第一个业务模块,因此,第一业务模块的父节点标识为空。同时,第一代理服务进程可以将目标处理请求转发给第一业务模块,第一业务模块可以处理目标处理请求。如图6所示,第一业务模块在处理目标处理请求时,需要调用第二业务模块处理目标业务中未处理完成的第一子业务。因此,第一业务模块可以生成关于第一子业务的第一子处理请求,通过第一代理服务进程,将第一子处理请求发送给第二代理服务进程。其中,第一代理服务进程可以将链路标识X和第一业务模块的调用标识XXa添加至第一子处理请求中。
具体的,第二代理服务进程接收到第一子处理请求后,第二代理服务进程可以获取第一子处理请求中携带得到第一业务模块的调用信息。根据第一业务模块的调用标识生成第二业务模块的调用标识XXb,将第一业务模块的调用标识XXa作为第二业务模块的父节点标识。因此,第二业务模块的调用信息包括链路标识X、第二业务模块的调用标识XXb以及父节点标识XXa,同样的,也还可以包括第一子处理请求的请求标识等相关信息。第二代理服务进程可以将第一子处理请求转发给第二业务模块,第二业务模块可以根据第一子处理请求处理第一子业务。如图5所示,第二业务模块处理第一子业务时,调用了第三业务模块处理目标业务中未处理完成的第二子业务。第二业务模块可以生成关于第二子业务的第二子处理请求,通过第二代理服务进程转发给第三代理服务进程。其中,第二代理服务进程可以将第二业务模块的调用标识以及链路标识添加至第二子处理请求中。第三代理服务进程接收到第二子处理请求后,可以根据第二子处理请求中携带的第二业务模块的调用标识XXa生成第三业务模块的调用标识XXc,以及将第二业务模块的调用标识XXa作为第三业务模块的父节点标识。以此得到第三业务模块的调用信息,该第三业务模块的调用信息包括链路标识X、第三业务模块的调用标识XXc以及第三业务模块的父节点标识XXb,还可以包括第二子处理请求的请求标识等信息。
第三业务模块可以根据第二子处理请求对第二子业务进行处理,得到第三处理结果,通过第三代理服务进程以及第二代理服务进程,将第三处理结果返回给第二业务模块。第二业务模块根据该第三处理结果以及第二业务模块生成的第二处理结果,生成初始处理结果。进一步地,第二业务模块可以通过第二代理服务进程以及第一代理服务进程,将初始处理结果返回给第一业务模块,第一业务模块根据初始处理结果以及第一业务模块生成的第一处理结果,生成关于目标处理请求的目标处理结果。第一代理服务进程、第二代理服务进程以及第三代理服务进程可以分别将第一业务模块、第二业务模块以及第三业务模块对应的数据包存储至数据库中。其中,数据包包括请求包(即处理请求数据包)和返回包(即处理结果数据包)。通过多进程消费,对各个数据包进行解析,得到各个目标业务模块的请求包、返回包、调用标识、父节点标识以及调用链路标识等业务处理信息,并将各个目标业务模块的请求包、返回包、调用标识、父节点标识以及调用链路标识等业务处理信息上传至ES进行统一存储。进一步地,计算机设备可以从ES中获取各个目标业务模块的业务处理信息,生成关于目标处理请求的调用链路,并对调用链路进行可视化,检测出调用链路中的异常节点,以及突出显示调用链路中的异常节点。可见,只需要目标代理服务进程与目标业务模块之间进行交互,即可生成目标处理请求的调用链路,不需要在目标业务模块中嵌入上报调用数据程序,进而,不需要业务模块的业务处理程序进行代码修改,安全性较高,并且开发成本和维护成本较低,可以提高调用链路的生成效率。同时,本申请实施例可以适用于任意语言类型搭建的系统,适用性较强。
在本申请实施例中,通过为目标业务模块创建对应的目标代理服务进程,通过该目标代理服务进程来将目标处理请求转发至对应的目标业务模块,换言之,该目标代理服务进程能够捕获到处理目标处理请求的目标业务模块。进而,调用目标业务模块,根据目标处理请求处理待处理的目标业务,得到该目标业务的目标处理结果。进一步地,对目标处理请求关联的请求对象的对象特征信息以及目标处理请求对应的随机因子进行特征编码,得到目标业务模块的调用信息,该请求对象的对象特征信息用于反映请求对象的特有对象信息,不同请求对象的对象特征信息不相同,同时,不同处理请求对应的随机因子也不同。因此,通过对随机因子和对象特征信息进行特征编码,得到目标业务模块的调用信息,该目标业务模块的调用信息具有唯一性,进而基于该业务模块的调用信息生成的目标处理请求的调用链路也具有唯一性,提高调用链路的准确度。根据目标处理结果、目标处理请求以及目标业务模块的调用信息,生成关于目标处理请求的调用链路。可见,只需要目标代理服务进程与目标业务模块之间进行交互,即可生成目标处理请求的调用链路,不需要在目标业务模块中嵌入上报调用数据程序,进而,不需要业务模块的业务处理程序进行代码修改,安全性较高,并且开发成本和维护成本较低,可以提高调用链路的生成效率。同时,由于流量代理服务traffic_proxy属于应用层服务,具有语言无关性,能够适用于任何一种语言的应用服务的调用链路跟踪,因此本申请实施例可以适用于任意语言类型搭建的系统,适用性较强。
请参见图7,图7是本申请实施例提供的一种数据处理方法的流程示意图。该数据处理方法可由图1中的任一用户终端来执行,也可以由图1中的服务器来执行,还可以由图1中的任一用户终端和服务器共同执行,本申请中用于执行该方法的设备可以统称为计算机设备。如图7所示,该数据处理方法可以包括但不限于以下步骤:
S201,获取待处理的目标业务的目标处理请求。
S202,根据业务参数确定用于处理目标业务的目标业务模块,以及确定目标业务模块对应的目标代理服务进程。
S203,通过目标代理服务进程,将目标处理请求转发至目标业务模块,调用目标业务模块,根据目标处理请求处理目标业务,得到关于目标业务的目标处理结果。
S204,获取目标处理请求关联的请求对象的对象特征信息以及目标处理请求对应的随机因子,对随机因子和对象特征信息进行特征编码,得到目标业务模块的调用信息。
S205,根据目标处理结果、目标处理请求以及目标业务模块,生成关于目标处理请求的调用链路。
具体的,本申请实施例中步骤S201-步骤S205的具体内容可以参见上述图3中步骤S101-步骤S105的具体内容,本申请实施例在此不再赘述。
S206,响应针对关于目标处理请求的调用链路的展示操作,展示调用链路中包括的N个目标业务模块分别对应的N个节点。
具体的,计算机设备可以生成关于调用链路的全景分析平台,用于展示调用链路。其中,计算机设备可以采用gin-go(一种个用Go(Golang语言)编写的框架)的开发框架和vue.js(一种构建用户界面的渐进式框架)的前端框架编写实现全景分析平台,完成调用链路跟踪和业务信息透视的功能。如,在广告系统中,通过全景分析平台可以自动绘制广告系统中的调用链路和业务信息。当目标用户实施针对关于目标处理请求的调用链路的展示操作时,计算机设备可以响应针对关于目标处理请求的调用链路的展示操作,在全景分析平台中展示关于目标处理请求的调用链路中包括的N个目标业务模块分别对应的N个节点,N为正整数,如N可以取值为1,2,3,…。其中,目标代理服务进程可以将目标业务模块的调用信息和业务处理信息存储至数据库中,该数据库可以是指ES(一种开源全文搜索和分析引擎,可以快速实时地存储、搜索、分析大数据)。这样,计算机设备可以从数据库中读取目标业务模块的调用信息以及业务处理信息,自动绘制调用链路中每个节点的请求信息、日志信息、容器信息、上下游信息(即调用当前目标业务模块的上游信息以及被当前目标业务模块调用的下游信息)等。
可选的,计算机设备可以在全景分析平台中展示业务模块搜索框,当目标用户在业务模块搜索框中输入目标业务模块,并触发针对该目标业务模块的查询操作时,计算机设备可以展示目标业务模块的相关信息以及与目标业务模块关联的调用链路。当目标用户触发针对调用链路的展示操作时,计算机设备可以响应针对调用链路的展示操作,展示调用链路中包括的N个目标业务模块分别对应的N个节点。
如图8所示,图8是本申请实施例提供的一种展示调用链路的示意图,如图8所示,全景分析平台中展示了业务模块搜索框,同时也展示接口名搜索框、调用链路搜索框等,可以通过业务模块名称、接口名、链路标识、路由值等信息搜索调用链路。如图8所示,当目标用户在业务模块搜索框中输入第一业务模块,并实施针对查询控件的触发操作后,计算机设备可以从数据库中获取与第一业务模块关联的模块信息,显示该模块信息,该模块信息可以包括模块名称、接口名、模块状态、路由值、链路标识、请求耗时以及环境类型以及创建时间等信息。如图8所示,第一业务模块的模块名称为第一业务模块,第一业务模块的接口名为接口1,第一业务模块的状态为0(即正常状态),第一业务模块的路由值为3403223233,第一业务模块的调用链路标识为01,第一业务模块的源端口为***,第一业务模块处理请求时的请求耗时为0.4055s,第一业务模块的模块信息的创建时间为2022.06.13,15:45等信息。同时,还可以展示与第一业务模块关联的请求包和返回包,请求包是指第一业务模块接收到的请求数据,返回包是指第一业务模块针对请求包所返回的响应数据,该第一业务模块的请求包和响应包可以通过第一业务模块对应的第一代理服务进程上报得到。这样,便可以查询到目标业务模块所在目标系统中任意业务模块的模块信息,也可以查询到目标系统中业务模块处理请求的调用链路和业务处理信息,便可以检测各个业务模块的异常状态,提高业务模块的运行功能的测试效率。
S207,对N个节点中的异常节点进行突出展示。
具体的,计算机设备可以对N个节点中的异常节点进行突出展示。其中,突出展示可以是指增大展示、高亮展示、采用目标颜色展示或者携带异常标识展示等等。其中,异常节点是指N个目标业务模块中业务处理信息满足调用异常条件的目标业务模块所对应的节点。可选的,目标业务模块的业务处理信息包括请求响应时长,调用异常条件可以是指请求响应时长超过目标时长。例如,若目标业务模块1的响应时长大于目标时长,则确定目标业务模块1的业务处理信息满足调用异常条件,则将目标业务模块1对应的节点确定为异常节点。可选的,目标业务模块的业务处理信息可以包括响应状态,调用异常条件可以是指响应失败。例如,若目标业务模块2接收到请求信息后响应失败,则确定目标业务模块2的业务处理信息满足调用异常条件,则将目标业务模块2对应的节点确定为异常节点。这样,对异常节点进行突出显示,可以自动且快速检测到异常的目标业务模块,提高系统检测出异常的测试效率。
可选的,计算机设备还可以在调用信息展示界面中展示关于目标处理请求的调用链路;调用链路包括目标业务模块对应的节点。响应针对目标业务模块对应的节点的触发操作,显示目标业务模块对应的业务处理信息。
具体的,计算机设备可以从数据库获取目标业务模块的调用信息以及目标业务模块的业务处理信息,绘制完成关于目标处理请求的调用链路后,可以在调用信息展示界面中展示关于目标处理请求的调用链路。该调用链路中包括目标业务模块对应的节点。当目标用户实施针对目标业务模块对应的节点的触发操作(如点击查看操作时),则显示目标业务模块对应的业务处理信息。该业务处理可以包括目标业务模块的请求信息(如接受到请求以及针对请求返回的结果等)、日志信息(即目标业务日志)、容器信息(如目标业务模块的状态信息)以及上下游信息等等。这样,可以便于管理人员根据调用链路,测试各个目标业务模块是否存在异常,提高测试效率。
可选的,计算机设备还可以在全景分析平台中打通周边测试套件,如在全景分析平台中引入一键生成测试用例、一键生成Mock数据、请求处理过程重放等功能。其中,Mock数据是指模拟一个目标业务模块的返回结果。具体的,一键生成测试用例是指根据调用链路生成关于目标处理请求的请求处理测试用例。这样,可以改变目标处理请求的请求参数,得到更新处理请求,根据更新处理请求和请求处理测试用例便可以得到关于更新处理请求的处理结果,可以提高测试效率。具体的,一键生成Mock数据是指模拟一个目标业务模块的返回结果,这样,可以向目标业务模块发送模拟请求,计算机设备可以模拟目标业务模块的处理逻辑,生成关于模拟请求的返回结果。具体的,请求处理过程重放是指对计算机设备对处理目标处理请求的调用处理过程进行重现。可选的,计算机设备还可以在全景分析平台中打通周边日志功能,全景式展示目标业务模块所在目标系统中的业务日志。这样,可以实现目标系统中的业务模块出现的问题复现,以及解决测试环境问题定位的难题,进而可以提高测试效率。
如图9所示,图9是本申请实施例提供的一种调用链路的示意图,如图9所示,图9中展示的调用链路可以是指针对广告计费请求的调用链路。计算机设备获取到针对广告计费业务的广告计费请求后,可以调用接入业务模块接收该广告计费请求。其中,计算机设备可以通过接入业务模块对应的目标代理服务进程,将广告计费请求发送给接入业务模块,这样,接入业务模块对应的目标代理服务便可以获取到接入业务模块的请求信息。同时,接入业务模块对应的目标代理服务接收到广告计费请求时,则检测该广告计费请求中是否携带链路标识,若不携带链路标识,则生成关于广告计费请求的链路标识;若存在链路标识,则不用生成。同时,接入业务模块对应的目标代理服务可以随机生成接入业务模块的第一调用标识,将链路标识和第一调用标识进行关联,得到接入业务模块的调用信息,如接入业务模块的调用标识为01。进一步地,接入业务模块可以对广告计费请求的合法性进行验证,得到验证结果,若验证结果指示广告计费请求具有合法性,则调用逻辑业务模块,对广告计费请求进行处理。其中,接入业务模块可以生成关于广告计费业务的第一子计费请求,通过接入业务模块对应得目标代理服务进程,将该第一子计费请求发送给逻辑业务模块。其中,接入业务模块对应得目标代理服务进程转发第一子计费请求时,可以将接入业务模块的调用信息添加至第一子处理请求中。
进一步地,逻辑业务模块对应的目标代理服务进程接收到第一子计费请求时,可以对该第一子请求进行解析,得到接入业务模块的调用标识和链路标识,逻辑业务模块对应的目标代理服务进程可以生成接入业务模块的调用标识的子调用标识,作为逻辑业务模块的调用标识。例如,接入业务模块的调用标识为01,对接入业务模块的调用标识01进行加一,得到逻辑业务模块的调用标识02。同样的,逻辑业务模块对应的目标代理服务便可以获取到逻辑业务模块的请求信息。逻辑业务模块在处理第一子计费请求时,可以调用获取用户新鲜度数据模块,用于获取用户对广告的新鲜度数据,同样的,可以通过逻辑业务模块对应的目标代理服务进程以及获取用户新鲜度数据模块对应的代理服务进程,转发请求信息以及生成获取用户新鲜度数据模块的调用信息,可以参考上述,在此不再赘述。同时,逻辑业务模块在处理第一子计费请求时,也可以调用计费逻辑判断模块,对广告计费业务进行执行逻辑判断,同样的,可以通过逻辑业务模块对应的目标代理服务进程以及计费逻辑判断模块对应的代理服务进程,转发请求信息以及生成计费逻辑判断模块的调用信息,可以参考上述,在此不再赘述。
进一步地,计费逻辑判断模块对广告计费业务进行执行逻辑判断时,可以调用计费频控检查模块,判断当前是否需要执行广告计费业务。该计费逻辑判断模块可以调用获取广告数据模块,获取广告数据,以检测当前是否需要执行广告计费业务。同样的,可以通过计费逻辑判断模块和获取广告数据模块分别对应的目标代理服务进程转发请求信息,以及生成计费逻辑判断模块和获取广告数据模块分别对应的调用信息。计费逻辑判断模块对广告计费业务进行执行逻辑判断时,也可以调用计费接口模块,执行广告计费。其中,该计费逻辑判断模块可以调用获取广告数据模块,获取广告计费数据,以完成广告计费。同时计费逻辑判断模块可以调用更新当前广告的扣费信息模块,以更新当前广告的扣费信息。同样的,可以通过计费逻辑判断模块、获取广告数据模块以及更新当前广告的扣费信息模块分别对应的目标代理服务进程转发请求信息,以及生成计费逻辑判断模块、获取广告数据模块以及更新当前广告的扣费信息模块分别对应的调用信息。可见,通过广告计费请求对应的调用链路,便可以查看到计算机设备处理广告计费业务时所调用的业务模块以及各个业务模块之间的调用关系。同时,由各个业务模块对应的目标代理服务进程上报各个业务模块的调用信息,而不用在各个业务模块中嵌入调用数据上报代码,安全性较高,同时适用性较强。
如图10所示,图10是本申请实施例提供的一种展示目标业务模块的业务处理信息的示意图,如图10所示,当目标用户实施图9展示的调用链路中的计费逻辑判断模块的触发操作时,该触发操作可以是指点击操作,计算机设备可以展示该计费逻辑判断模块的业务处理信息。如图10所示,计费逻辑判断模块的业务处理信息包括基本信息,该基本信息可以包括模块名称、接口名、模块状态、路由值、链路标识、调用标识、请求耗时等信息。如图10所示,计费逻辑判断模块的业务处理信息包括请求包,该请求包是指计费逻辑判断模块处理广告计费请求所接收到的请求数据。如图10所示,计费逻辑判断模块的业务处理信息包括返回包,该返回包是指计费逻辑判断模块处理广告计费请求所生成的响应数据(即处理结果)。如图10所示,计费逻辑判断模块的业务处理信息包括业务日志,该业务日志是指计费逻辑判断模块处理广告计费请求所产生的日志数据。这样,可以快速且直观的查看到业务模块被调用时的相关信息,以检测业务模块是否异常。
如图11所示,图11是本申请实施例提供的一种展示调用链路的示意图,如图11所示,全景分析平台中可以日志功能区域110a,该日志功能区域110a展示有中转日志(即属于转发日志类型的日志)、展示模块日志(即Nginx日志)、容器内日志、全流量抓包(即目标业务模块的请求包和返回包)、数据透视以及日志采集配置。其中,当实施针对中转日志的触发操作时,则显示目标代理服务进程转发目标业务模块的请求信息以及处理结果时所产生的日志数据;当实施针对模块日志的触发操作时,则展示目标业务模块的访问日志和错误日志;当实施针对容器日志的触发操作时,则展示目标业务模块的容器内产生的业务日志;当实施针对全流量抓包的触发操作时,则显示目标代理服务进程获取得到数据包(如请求包和响应包),包括Rpc调用方式(一种远程过程调用方式)、Cgi调用方式(一种公共网关接口调用方式)以及Appvr(一种应用交互调用方式)等产生的数据包;当实施针对日志采集配置的触发操作时,可以对日志采集策略进行配置,以根据不同日志类型设置不同日志采集策略。如图11所示,当实施针对全流量抓包的触发操作时,可以显示搜索区域,该搜索区域中显示有模块名称搜索框、接口名搜索框、链路标识搜索框以及路由值搜索框等。当在模块名称搜索框中输入第一业务模块,以及实施针对查询控件的触发操作时,则显示第一业务模块的模块信息,该模块信息可以包括模块名称、接口名、模块状态、路由值、链路标识、请求耗时以及环境类型以及创建时间等信息。还可以显示第一业务模块的数据包110b,即请求包的具体内容和返回包的具体内容。其中,当实施针对链路标识Xa110c的触发操作时,则显示如图9所示展示的调用链路一样展示调用标识Xa对应的调用链路。当实施针对“更多操作”控件的触发操作时,可以显示“生成测试用例”功能、一键生成模拟数据功能(即Mock数据)以及一键重放功能等功能110d。这样,可以便于解决测试问题定位以及测试场景构建的难题,提高测试效率。
在本申请实施例中,通过为目标业务模块创建对应的目标代理服务进程,通过该目标代理服务进程来将目标处理请求转发至对应的目标业务模块,换言之,该目标代理服务进程能够捕获到处理目标处理请求的目标业务模块。进而,调用目标业务模块,根据目标处理请求处理待处理的目标业务,得到该目标业务的目标处理结果,根据目标处理结果、目标处理请求以及目标业务模块,生成关于目标处理请求的调用链路。可见,只需要目标代理服务进程与目标业务模块之间进行交互,即可生成目标处理请求的调用链路,不需要在目标业务模块中嵌入上报调用数据程序,进而,不需要业务模块的业务处理程序进行代码修改,安全性较高,并且开发成本和维护成本较低,可以提高调用链路的生成效率。同时,由于流量代理服务traffic_proxy属于应用层服务,具有语言无关性,能够适用于任何一种语言的应用服务的调用链路跟踪,因此本申请实施例可以适用于任意语言类型搭建的系统,适用性较强。另外,本申请在对调用链路进行可视化的同时,还可以提高生成测试用例”功能、一键生成模拟数据功能(即Mock数据)以及一键重放功能等功能,可以便于解决测试问题定位以及测试场景构建的难题,提高测试效率。
请参见图12,图12是本申请实施例提供的一种数据处理装置的结构示意图。上述数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该数据处理装置可以用于执行本申请实施例提供的数据处理方法中的相应步骤。如图12所示,该数据处理装置可以包括:获取模块11、确定模块12、业务处理模块13、特征编码模块14、生成模块15、第一展示模块16、显示模块17、第二展示模块18以及突出展示模块19。
获取模块11,用于获取待处理的目标业务的目标处理请求;目标处理请求携带目标业务的业务参数;
确定模块12,用于根据业务参数确定用于处理目标业务的目标业务模块,以及确定目标业务模块对应的目标代理服务进程;
业务处理模块13,用于通过目标代理服务进程,将目标处理请求转发至目标业务模块,调用目标业务模块,根据目标处理请求处理目标业务,得到关于目标业务的目标处理结果;
特征编码模块14,用于获取目标处理请求关联的请求对象的对象特征信息以及目标处理请求对应的随机因子,对随机因子和对象特征信息进行特征编码,得到目标业务模块的调用信息。
生成模块15,用于根据目标处理结果、目标处理请求以及目标业务模块,生成关于目标处理请求的调用链路;调用链路用于反映目标处理请求的处理过程。
其中,确定模块12包括:
第一确定单元1201,用于根据业务参数,确定用于接入目标业务的第一业务模块,以及第一业务模块对应的第一代理服务进程;
第二确定单元1202,用于通过第一业务模块,根据业务参数以及第一业务模块的业务处理逻辑,确定目标业务在第一业务模块处理后的第一处理状态;
第三确定单元1203,用于若第一处理状态指示目标业务已处理完成,则将第一业务模块确定为目标业务模块,以及将第一代理服务进程确定为目标代理服务进程;
第四确定单元1204,用于若第一处理状态指示目标业务未处理完成,则确定目标业务中未处理完成的第一子业务,获取用于处理第一子业务的第二业务模块,以及第二业务模块对应的第二代理服务进程,根据第一业务模块以及第二业务模块确定目标业务模块,根据第一代理服务进程以及第二代理服务进程确定目标代理服务进程。
其中,第四确定单元1204具体用于:
通过第二业务模块,根据业务参数以及第二业务模块的业务处理逻辑,确定目标业务在第二业务模块处理后的第二处理状态;
若第二处理状态指示目标业务已处理完成,则将第一业务模块以及第二业务模块确定为目标业务模块,将第一代理服务进程以及第二代理服务进程确定为目标代理服务进程;
若第二处理状态指示目标业务未处理完成,则确定目标业务中未处理完成的第二子业务,获取用于处理第二子业务的第三业务模块,以及第三业务模块对应的第三代理服务进程,根据第一业务模块、第二业务模块以及第三业务模块确定目标业务模块,根据第一代理服务进程、第二代理服务进程以及第三代理服务进程确定目标代理服务进程。
其中,目标处理模块包括第一处理模块和第二处理模块;
业务处理模块13包括:
第一预处理单元1301,用于通过第一代理服务进程,将目标处理请求转发至第一业务模块,调用第一业务模块,根据目标处理请求对目标业务执行接入预处理,得到第一处理结果;
第一生成单元1302,用于在获取到第一处理结果之后,生成关于第一子业务的第一子处理请求;第一子处理请求携带第一业务模块的第一调用信息以及关于第一子业务的业务参数,第一调用信息用于指示第一业务模块在目标业务的处理过程中的调用顺序;
第一业务处理单元1303,用于通过第二代理服务进程将第一子处理请求发送至第二业务模块,调用第二业务模块,根据第一子处理请求对第一子业务执行业务处理,得到第二处理结果;
第二生成单元1304,用于根据第一处理结果和第二处理结果,生成关于目标业务的目标处理结果。
其中,目标处理模块包括第一处理模块、第二处理模块以及第三处理模块;
业务处理模块13包括:
第二预处理单元1305,用于通过第一代理服务进程,将目标处理请求转发至第一业务模块,调用第一业务模块,对目标业务执行接入预处理,得到第一处理结果;
第三生成单元1306,用于在获取到第一处理结果之后,生成关于第一子业务的第一子处理请求;第一子处理请求携带第一业务模块的第一调用信息以及关于第一子业务的业务参数,第一调用信息用于指示第一业务模块在目标业务的处理过程中的调用顺序;
第二业务处理单元1307,用于通过第二代理服务进程以及第二业务模块,根据第一子处理请求对第一子业务执行业务处理,得到第二处理结果;
第四生成单元1308,用于在获取到第二处理结果之后,生成关于第二子业务的第二子处理请求;第二子处理请求携带第二业务模块的第二调用信息以及关于第二子业务的业务参数,第二调用信息用于指示第二业务模块在目标业务的处理过程中的调用顺序;
第三业务处理单元1309,用于通过第二代理服务进程以及第二业务模块,根据第二子处理请求对第二子业务执行业务处理,得到第三处理结果;
第五生成单元1310,用于根据第一处理结果、第二处理结果以及第三处理结果,生成关于目标业务的目标处理结果。
其中,目标业务模块包括第一业务模块;
业务处理模块13包括:
第三预处理单元1311,用于通过第一代理服务进程,将目标处理请求转发至第一业务模块,调用第一业务模块,根据目标处理请求对目标业务执行接入预处理,得到第一处理结果;
第五确定单元1312,用于将第一处理结果确定为关于目标业务的目标处理结果。
其中,第一业务处理单元1303具体用于:
通过第一业务模块将第一子处理请求发送给第一代理服务进程;
通过第一代理服务进程将第一子处理请求转发给第二代理服务进程;
在第二代理服务进程接收到第一子处理请求后,通过第二代理服务进程将第一子处理请求发送给第二业务模块。
其中,第一生成单元1302具体用于:
通过第一业务模块,生成关于第一子业务的初始子处理请求,将初始子处理请求发送给第一代理服务进程;初始子处理请求携带关于第一子业务的业务参数;
通过第一代理服务进程,将第一业务模块的第一调用信息添加至初始子处理请求中,得到关于第一子业务的第一子处理请求。
其中,目标业务模块的数量为一个,目标业务模块包括第一业务模块;特征编码模块14包括:
第六生成单元1401,用于将目标处理请求存储至区块链网络中的目标区块中,根据目标区块的区块信息生成目标处理请求对应的随机因子;
哈希编码单元1402,用于获取目标请求处理关联的请求对象的对象特征信息,对对象特征信息进行哈希编码,得到对象哈希编码值;
组合单元1403,用于通过第一业务模块对应的第一代理服务进程,对随机因子以及对象哈希编码值进行组合,得到关于目标处理请求的链路标识;链路标识用于确定在处理目标处理请求时所调用的业务模块;
第六确定单元1404,用于通过第一代理服务进程生成第一业务模块的调用标识,将关于目标处理请求的链路标识和第一业务模块的调用标识,确定为第一业务模块的调用信息。
其中,目标业务模块的数量为M个;M个目标业务模块包括目标业务模块Mi和目标业务模块Mj;目标业务模块Mi的调用顺序位于目标业务模块Mj的调用顺序之前,且目标业务模块Mi与目标业务模块Mj之间具有调用关系;M为大于或等于2的正整数,i、j为小于或等于M的正整数,i与j不相同;
特征编码模块14包括:
第一获取单元1405,用于获取关于目标处理请求的链路标识;目标处理请求的链路标识是对随机因子和对象特征信息进行特征编码得到的;链路标识用于确定在处理目标处理请求时所调用的业务模块;
第二获取单元1406,用于通过目标业务模块Mi对应的代理服务进程,获取目标业务模块Mi的调用标识,作为第一调用标识;
第七确定单元1407,用于根据第一调用标识和链路标识,确定目标业务模块Mi的调用信息;
第八确定单元1408,通过目标业务模块Mj对应的代理服务进程,生成第一调用标识的子调用标识,将子调用标识确定为目标业务模块Mj对应的第二调用标识,将第一调用标识、第二调用标识以及链路标识,确定为目标业务模块Mj的调用信息。
其中,生成模块15包括:
链路生成单元1501,用于根据目标业务模块的调用信息生成初始调用链树;初始调用链树包括用于反映目标业务模块的节点;
信息生成单元1502,用于根据目标处理结果和目标处理请求,生成目标业务模块针对目标处理请求的业务处理信息;
关联单元1503,用于将业务处理信息与目标业务模块的节点进行关联,得到目标调用链树;
链路确定单元1504,用于将目标调用链树确定为关于目标处理请求的调用链路。
其中,目标业务模块的数量为M个;M个目标业务模块包括目标业务模块Mi和目标业务模块Mj;目标业务模块Mi的调用顺序位于目标业务模块Mj的调用顺序之前,且目标业务模块Mi与目标业务模块Mj之间具有调用关系;M为大于或等于2的正整数,i、j为小于或等于M的正整数,i与j不相同;
初始调用链树包括第一节点和第二节点;第一节点用于反映目标业务模块Mi;第二节点用于反映目标业务模块Mj,第一节点为第二节点的父节点。
其中,信息生成单元1502具体用于:
获取目标业务模块处理目标处理请求时所产生的目标业务日志;
通过目标代理服务进程,上报目标业务模块所接收到的目标处理请求以及目标业务模块针对目标处理请求所生成目标处理结果;
对目标业务日志、目标处理请求以及目标处理结果进行关联组合,得到目标业务模块针对目标处理请求的业务处理信息。
其中,获取目标业务模块处理目标处理请求时所产生的目标业务日志,包括:
获取目标业务模块在处理目标处理请求时所产生的业务日志的日志类型;
根据业务日志的日志类型,对业务日志进行采集,得到目标业务日志。
其中,根据业务日志的日志类型,对业务日志进行采集,得到目标业务日志,包括:
若业务日志的日志类型为静态日志类型,则通过日志采集组件对属于静态日志类型的业务日志进行采集,得到目标业务日志;
若业务日志的日志类型为转发日志类型,则通过目标代理服务进程,对属于转发日志类型的业务日志进行采集,得到目标业务日志;
若业务日志的日志类型为请求日志类型,则通过异步进程,对属于请求日志类型的业务日志进行采集,得到目标业务日志;
若业务日志的日志类型为交互日志类型,则通过日志消费任务,对属于交互日志类型的业务日志进行采集,得到目标业务日志。
其中,数据处理装置还包括:
第一展示模块16,用于在调用信息展示界面中展示关于目标处理请求的调用链路;调用链路包括目标业务模块对应的节点;
显示模块17,用于响应针对目标业务模块对应的节点的触发操作,显示目标业务模块对应的业务处理信息。
其中,目标业务模块的数量为N个,N为正整数;数据处理装置还包括:
第二展示模块18,用于响应针对关于目标处理请求的调用链路的展示操作,展示调用链路中包括的N个目标业务模块分别对应的N个节点;
突出展示模块19,用于对N个节点中的异常节点进行突出展示;异常节点是指N个目标业务模块中业务处理信息满足调用异常条件的目标业务模块所对应的节点。
根据本申请的一个实施例,图12所示的数据处理装置中的各个模块可以分别或全部合并为一个或若干个单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个子单元,可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由多个单元来实现,或者多个模块的功能由一个单元实现。在本申请的其它实施例中,数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
在本申请实施例中,通过为目标业务模块创建对应的目标代理服务进程,通过该目标代理服务进程来将目标处理请求转发至对应的目标业务模块,换言之,该目标代理服务进程能够捕获到处理目标处理请求的目标业务模块。进而,调用目标业务模块,根据目标处理请求处理待处理的目标业务,得到该目标业务的目标处理结果,根据目标处理结果、目标处理请求以及目标业务模块,生成关于目标处理请求的调用链路。可见,只需要目标代理服务进程与目标业务模块之间进行交互,即可生成目标处理请求的调用链路,不需要在目标业务模块中嵌入上报调用数据程序,进而,不需要业务模块的业务处理程序进行代码修改,安全性较高,并且开发成本和维护成本较低,可以提高调用链路的生成效率。同时,由于流量代理服务traffic_proxy属于应用层服务,具有语言无关性,能够适用于任何一种语言的应用服务的调用链路跟踪,因此本申请实施例可以适用于任意语言类型搭建的系统,适用性较强。另外,本申请在对调用链路进行可视化的同时,还可以提高生成测试用例”功能、一键生成模拟数据功能(即Mock数据)以及一键重放功能等功能,可以便于解决测试问题定位以及测试场景构建的难题,提高测试效率。
请参见图13,图13是本申请实施例提供的一种计算机设备的结构示意图。如图13所示,上述计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非易失性的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图13所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图13所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取待处理的目标业务的目标处理请求;目标处理请求携带目标业务的业务参数;
根据业务参数确定用于处理目标业务的目标业务模块,以及确定目标业务模块对应的目标代理服务进程;
通过目标代理服务进程,将目标处理请求转发至目标业务模块,调用目标业务模块,根据目标处理请求处理目标业务,得到关于目标业务的目标处理结果;
获取目标处理请求关联的请求对象的对象特征信息以及目标处理请求对应的随机因子,对随机因子和对象特征信息进行特征编码,得到目标业务模块的调用信息;目标业务模块的调用信息用于指示目标业务模块在目标业务的处理过程中的调用顺序;
根据目标处理结果、目标处理请求以及目标业务模块的调用信息,生成关于目标处理请求的调用链路;调用链路用于反映目标处理请求的处理过程
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3或者图7所对应实施例中对数据处理方法的描述,也可执行前文图12所对应实施例中对数据处理装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
需要说明的是,本申请以上实施例如果需要用到对象的相关信息等,需要获得对象许可或者同意,需要遵守相关国家和地区的相关法律法规。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的数据处理装置所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3和图7所对应实施例中对数据处理方法的描述,因此,这里将不再进行赘述。
另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链系统。
此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图3和图7所对应实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (21)
1.一种数据处理方法,其特征在于,包括:
获取待处理的目标业务的目标处理请求;所述目标处理请求携带所述目标业务的业务参数;
根据所述业务参数确定用于处理所述目标业务的目标业务模块,以及确定所述目标业务模块对应的目标代理服务进程;
通过所述目标代理服务进程,将所述目标处理请求转发至所述目标业务模块,调用所述目标业务模块,根据所述目标处理请求处理所述目标业务,得到关于所述目标业务的目标处理结果;
获取所述目标处理请求关联的请求对象的对象特征信息以及所述目标处理请求对应的随机因子,对所述随机因子和所述对象特征信息进行特征编码,得到所述目标业务模块的调用信息;所述目标业务模块的调用信息用于指示所述目标业务模块在所述目标业务的处理过程中的调用顺序;
根据所述目标处理结果、所述目标处理请求以及所述目标业务模块的调用信息,生成关于所述目标处理请求的调用链路;所述调用链路用于反映所述目标处理请求的处理过程。
2.根据权利要求1所述的方法,其特征在于,所述根据所述业务参数确定用于处理所述目标业务的目标业务模块,以及确定所述目标业务模块对应的目标代理服务进程,包括:
根据所述业务参数,确定用于接入所述目标业务的第一业务模块,以及所述第一业务模块对应的第一代理服务进程;
通过所述第一业务模块,根据所述业务参数以及所述第一业务模块的业务处理逻辑,确定所述目标业务在所述第一业务模块处理后的第一处理状态;
若所述第一处理状态指示所述目标业务已处理完成,则将所述第一业务模块确定为所述目标业务模块,以及将所述第一代理服务进程确定为所述目标代理服务进程;
若所述第一处理状态指示所述目标业务未处理完成,则确定所述目标业务中未处理完成的第一子业务,获取用于处理所述第一子业务的第二业务模块,以及所述第二业务模块对应的第二代理服务进程,根据所述第一业务模块以及所述第二业务模块确定所述目标业务模块,根据所述第一代理服务进程以及所述第二代理服务进程确定所述目标代理服务进程。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一业务模块以及所述第二业务模块确定所述目标业务模块,根据所述第一代理服务进程以及所述第二代理服务进程确定所述目标代理服务进程,包括:
通过所述第二业务模块,根据所述业务参数以及所述第二业务模块的业务处理逻辑,确定所述目标业务在所述第二业务模块处理后的第二处理状态;
若所述第二处理状态指示所述目标业务已处理完成,则将所述第一业务模块以及所述第二业务模块确定为所述目标业务模块,将所述第一代理服务进程以及所述第二代理服务进程确定为所述目标代理服务进程;
若所述第二处理状态指示所述目标业务未处理完成,则确定所述目标业务中未处理完成的第二子业务,获取用于处理所述第二子业务的第三业务模块,以及所述第三业务模块对应的第三代理服务进程,根据所述第一业务模块、所述第二业务模块以及所述第三业务模块确定所述目标业务模块,根据所述第一代理服务进程、所述第二代理服务进程以及所述第三代理服务进程确定所述目标代理服务进程。
4.根据权利要求2所述的方法,其特征在于,所述目标处理模块包括所述第一处理模块和所述第二处理模块;
所述通过所述目标代理服务进程,将所述目标处理请求转发至所述目标业务模块,调用所述目标业务模块,根据所述目标处理请求处理所述目标业务,得到关于所述目标业务的目标处理结果,包括:
通过所述第一代理服务进程,将所述目标处理请求转发至所述第一业务模块,调用所述第一业务模块,根据所述目标处理请求对所述目标业务执行接入预处理,得到第一处理结果;
在获取到所述第一处理结果之后,生成关于所述第一子业务的第一子处理请求;所述第一子处理请求携带所述第一业务模块的第一调用信息以及关于所述第一子业务的业务参数,所述第一调用信息用于指示所述第一业务模块在所述目标业务的处理过程中的调用顺序;
通过所述第二代理服务进程将所述第一子处理请求发送至所述第二业务模块,调用所述第二业务模块,根据所述第一子处理请求对所述第一子业务执行业务处理,得到第二处理结果;
根据所述第一处理结果和所述第二处理结果,生成关于所述目标业务的目标处理结果。
5.根据权利要求3所述的方法,其特征在于,所述目标处理模块包括所述第一处理模块、所述第二处理模块以及所述第三处理模块;
所述通过所述目标代理服务进程,将所述目标处理请求转发至所述目标业务模块,调用所述目标业务模块,根据所述目标处理请求处理所述目标业务,得到关于所述目标业务的目标处理结果,包括:
通过所述第一代理服务进程,将所述目标处理请求转发至所述第一业务模块,调用所述第一业务模块,对所述目标业务执行接入预处理,得到第一处理结果;
在获取到所述第一处理结果之后,生成关于所述第一子业务的第一子处理请求;所述第一子处理请求携带所述第一业务模块的第一调用信息以及关于所述第一子业务的业务参数,所述第一调用信息用于指示所述第一业务模块在所述目标业务的处理过程中的调用顺序;
通过所述第二代理服务进程以及所述第二业务模块,根据所述第一子处理请求对所述第一子业务执行业务处理,得到第二处理结果;
在获取到所述第二处理结果之后,生成关于所述第二子业务的第二子处理请求;所述第二子处理请求携带所述第二业务模块的第二调用信息以及关于所述第二子业务的业务参数,所述第二调用信息用于指示所述第二业务模块在所述目标业务的处理过程中的调用顺序;
通过所述第二代理服务进程以及所述第二业务模块,根据所述第二子处理请求对所述第二子业务执行业务处理,得到第三处理结果;
根据所述第一处理结果、所述第二处理结果以及所述第三处理结果,生成关于所述目标业务的目标处理结果。
6.根据权利要求2所述的方法,其特征在于,所述目标业务模块包括第一业务模块;
所述通过所述目标代理服务进程,将所述目标处理请求转发至所述目标业务模块,调用所述目标业务模块,根据所述目标处理请求处理所述目标业务,得到关于所述目标业务的目标处理结果,包括:
通过所述第一代理服务进程,将所述目标处理请求转发至所述第一业务模块,调用所述第一业务模块,根据所述目标处理请求对所述目标业务执行接入预处理,得到第一处理结果;
将所述第一处理结果确定为关于所述目标业务的目标处理结果。
7.根据权利要求4所述的方法,其特征在于,所述通过所述第二代理服务进程将所述第一子处理请求发送至所述第二业务模块,包括:
通过所述第一业务模块将所述第一子处理请求发送给所述第一代理服务进程;
通过所述第一代理服务进程将所述第一子处理请求转发给所述第二代理服务进程;
在所述第二代理服务进程接收到所述第一子处理请求后,通过所述第二代理服务进程将所述第一子处理请求发送给所述第二业务模块。
8.根据权利要求4所述的方法,其特征在于,所述生成关于所述第一子业务的第一子处理请求,包括:
通过所述第一业务模块,生成关于所述第一子业务的初始子处理请求,将所述初始子处理请求发送给所述第一代理服务进程;所述初始子处理请求携带所述关于所述第一子业务的业务参数;
通过所述第一代理服务进程,将所述第一业务模块的第一调用信息添加至所述初始子处理请求中,得到关于所述第一子业务的第一子处理请求。
9.根据权利要求1所述的方法,其特征在于,所述目标业务模块的数量为一个,所述目标业务模块包括第一业务模块;
所述获取所述目标处理请求关联的请求对象的对象特征信息以及所述目标处理请求对应的随机因子,对所述随机因子和所述对象特征信息进行特征编码,得到所述目标业务模块的调用信息,包括:
将所述目标处理请求存储至区块链网络中的目标区块中,根据所述目标区块的区块信息生成所述目标处理请求对应的随机因子;
获取所述目标请求处理关联的请求对象的对象特征信息,对所述对象特征信息进行哈希编码,得到对象哈希编码值;
通过所述第一业务模块对应的第一代理服务进程,对所述随机因子以及所述对象哈希编码值进行组合,得到关于所述目标处理请求的链路标识;所述链路标识用于确定在处理所述目标处理请求时所调用的业务模块;
通过所述第一代理服务进程生成所述第一业务模块的调用标识,将关于所述目标处理请求的链路标识和所述第一业务模块的调用标识,确定为所述第一业务模块的调用信息。
10.根据权利要求1所述的方法,其特征在于,所述目标业务模块的数量为M个;M个目标业务模块包括目标业务模块Mi和目标业务模块Mj;所述目标业务模块Mi的调用顺序位于所述目标业务模块Mj的调用顺序之前,且所述目标业务模块Mi与所述目标业务模块Mj之间具有调用关系;M为大于或等于2的正整数,i、j为小于或等于M的正整数,i与j不相同;
所述对所述随机因子和所述对象特征信息进行特征编码,得到所述目标业务模块的调用信息,包括:
获取关于所述目标处理请求的链路标识;所述目标处理请求的链路标识是对所述随机因子和所述对象特征信息进行特征编码得到的;所述链路标识用于确定在处理所述目标处理请求时所调用的业务模块;
通过所述目标业务模块Mi对应的代理服务进程,获取目标业务模块Mi的调用标识,作为第一调用标识;
根据所述第一调用标识和所述链路标识,确定所述目标业务模块Mi的调用信息;
通过所述目标业务模块Mj对应的代理服务进程,生成所述第一调用标识的子调用标识,将所述子调用标识确定为所述目标业务模块Mj对应的第二调用标识,将所述第一调用标识、所述第二调用标识以及所述链路标识,确定为所述目标业务模块Mj的调用信息。
11.根据权利要求1所述的方法,其特征在于,所述根据所述目标处理结果、所述目标处理请求以及所述目标业务模块的调用信息,生成关于所述目标处理请求的调用链路,包括:
根据所述目标业务模块的调用信息生成初始调用链树;所述初始调用链树包括用于反映所述目标业务模块的节点;
根据所述目标处理结果和所述目标处理请求,生成所述目标业务模块针对所述目标处理请求的业务处理信息;
将所述业务处理信息与所述目标业务模块的节点进行关联,得到目标调用链树;
将所述目标调用链树确定为关于所述目标处理请求的调用链路。
12.根据权利要求11所述的方法,其特征在于,所述目标业务模块的数量为M个;M个目标业务模块包括目标业务模块Mi和目标业务模块Mj;所述目标业务模块Mi的调用顺序位于所述目标业务模块Mj的调用顺序之前,且所述目标业务模块Mi与所述目标业务模块Mj之间具有调用关系;M为大于或等于2的正整数,i、j为小于或等于M的正整数,i与j不相同;
所述初始调用链树包括第一节点和第二节点;所述第一节点用于反映所述目标业务模块Mi;所述第二节点用于反映所述目标业务模块Mj,所述第一节点为所述第二节点的父节点。
13.根据权利要求11所述的方法,其特征在于,所述根据所述目标处理结果和所述目标处理请求,生成所述目标业务模块针对所述目标处理请求的业务处理信息,包括:
获取所述目标业务模块处理所述目标处理请求时所产生的目标业务日志;
通过所述目标代理服务进程,上报所述目标业务模块所接收到的目标处理请求以及所述目标业务模块针对所述目标处理请求所生成目标处理结果;
对所述目标业务日志、所述目标处理请求以及所述目标处理结果进行关联组合,得到所述目标业务模块针对所述目标处理请求的业务处理信息。
14.根据权利要求13所述的方法,其特征在于,所述获取所述目标业务模块处理所述目标处理请求时所产生的目标业务日志,包括:
获取所述目标业务模块在处理所述目标处理请求时所产生的业务日志的日志类型;
根据所述业务日志的日志类型,对所述业务日志进行采集,得到所述目标业务日志。
15.根据权利要求14所述的方法,其特征在于,所述根据所述业务日志的日志类型,对所述业务日志进行采集,得到所述目标业务日志,包括:
若所述业务日志的日志类型为静态日志类型,则通过日志采集组件对属于所述静态日志类型的业务日志进行采集,得到目标业务日志;
若所述业务日志的日志类型为转发日志类型,则通过所述目标代理服务进程,对属于所述转发日志类型的业务日志进行采集,得到目标业务日志;
若所述业务日志的日志类型为请求日志类型,则通过异步进程,对属于所述请求日志类型的业务日志进行采集,得到目标业务日志;
若所述业务日志的日志类型为交互日志类型,则通过日志消费任务,对属于所述交互日志类型的业务日志进行采集,得到目标业务日志。
16.根据权利要求11所述的方法,其特征在于,所述方法还包括:
在调用信息展示界面中展示所述关于目标处理请求的调用链路;所述调用链路包括目标业务模块对应的节点;
响应针对所述目标业务模块对应的节点的触发操作,显示所述目标业务模块对应的业务处理信息。
17.根据权利要求1所述的方法,其特征在于,所述目标业务模块的数量为N个,N为正整数;所述方法还包括:
响应针对关于所述目标处理请求的调用链路的展示操作,展示所述调用链路中包括的N个目标业务模块分别对应的N个节点;
对所述N个节点中的异常节点进行突出展示;所述异常节点是指所述N个目标业务模块中业务处理信息满足调用异常条件的目标业务模块所对应的节点。
18.一种数据处理装置,其特征在于,包括:
获取模块,用于获取待处理的目标业务的目标处理请求;所述目标处理请求携带所述目标业务的业务参数;
确定模块,用于根据所述业务参数确定用于处理所述目标业务的目标业务模块,以及确定所述目标业务模块对应的目标代理服务进程;
业务处理模块,用于通过所述目标代理服务进程,将所述目标处理请求转发至所述目标业务模块,调用所述目标业务模块,根据所述目标处理请求处理所述目标业务,得到关于所述目标业务的目标处理结果;
特征编码模块,用于获取所述目标处理请求关联的请求对象的对象特征信息以及所述目标处理请求对应的随机因子,对所述随机因子和所述对象特征信息进行特征编码,得到所述目标业务模块的调用信息;所述目标业务模块的调用信息用于指示所述目标业务模块在所述目标业务的处理过程中的调用顺序;
生成模块,用于根据所述目标处理结果、所述目标处理请求以及所述目标业务模块的调用信息,生成关于所述目标处理请求的调用链路;所述调用链路用于反映所述目标处理请求的处理过程。
19.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-17任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-17任一项所述的方法。
21.一种计算机程序产品或计算机程序,其特征在于,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中,所述计算机指令适于由处理器读取并执行,以使得具有所述处理器的计算机设备执行权利要求1-17任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210767043.7A CN117369907A (zh) | 2022-07-01 | 2022-07-01 | 一种数据处理方法、装置、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210767043.7A CN117369907A (zh) | 2022-07-01 | 2022-07-01 | 一种数据处理方法、装置、存储介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117369907A true CN117369907A (zh) | 2024-01-09 |
Family
ID=89402769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210767043.7A Pending CN117369907A (zh) | 2022-07-01 | 2022-07-01 | 一种数据处理方法、装置、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117369907A (zh) |
-
2022
- 2022-07-01 CN CN202210767043.7A patent/CN117369907A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111901192B (zh) | 一种页面访问数据的统计方法及装置 | |
CN109684052B (zh) | 事务分析方法、装置、设备及存储介质 | |
CN113590497A (zh) | 业务服务的测试方法、装置、电子设备及存储介质 | |
CN108134708B (zh) | 监控第三方接口的方法和装置 | |
CN114679292B (zh) | 基于网络空间测绘的蜜罐识别方法、装置、设备及介质 | |
CN111740868A (zh) | 告警数据的处理方法和装置及存储介质 | |
CN112529417A (zh) | 一种安全事件处理方法、装置、设备及存储介质 | |
CN114363144B (zh) | 一种面向分布式系统的故障信息关联上报方法及相关设备 | |
CN109409948B (zh) | 交易异常检测方法、装置、设备及计算机可读存储介质 | |
CN103944779B (zh) | 一种wap业务性能监测方法及系统 | |
CN116866076A (zh) | 网络蜜罐识别方法、装置、设备及存储介质 | |
CN117369907A (zh) | 一种数据处理方法、装置、存储介质及设备 | |
CN115484326A (zh) | 处理数据的方法、系统及存储介质 | |
CN115913912A (zh) | 报文拦截及业务链路图的生成方法及装置 | |
CN112559278B (zh) | 操作数据的获取方法和装置 | |
CN113014587A (zh) | 一种api检测方法、装置、电子设备及存储介质 | |
CN114945036B (zh) | 分享数据的处理方法、相关设备及介质 | |
CN114928582B (zh) | 资源组合方法、装置、设备及存储介质 | |
CN113315676B (zh) | 一种断链检测的方法、装置及电子设备 | |
CN117632445B (zh) | 请求处理方法以及装置、任务执行方法以及装置 | |
US20230370959A1 (en) | Systems and methods for retrieving ran information | |
CN115695227A (zh) | 性能测试方法、装置、电子设备及可读存储介质 | |
CN115391127A (zh) | 一种拨测方法、装置、存储介质及芯片 | |
CN116028451A (zh) | 日志分析方法及相关设备 | |
CN117312414A (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 |