CN116996556A - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN116996556A CN116996556A CN202210443663.5A CN202210443663A CN116996556A CN 116996556 A CN116996556 A CN 116996556A CN 202210443663 A CN202210443663 A CN 202210443663A CN 116996556 A CN116996556 A CN 116996556A
- Authority
- CN
- China
- Prior art keywords
- service
- target
- micro
- target micro
- parameter
- 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 20
- 238000012545 processing Methods 0.000 claims abstract description 128
- 238000000034 method Methods 0.000 claims abstract description 73
- 230000004044 response Effects 0.000 claims abstract description 17
- 230000008569 process Effects 0.000 claims description 35
- 230000015556 catabolic process Effects 0.000 claims description 24
- 238000006731 degradation reaction Methods 0.000 claims description 24
- 230000002159 abnormal effect Effects 0.000 claims description 11
- 230000001419 dependent effect Effects 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 3
- 230000035515 penetration Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000010276 construction Methods 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 210000000653 nervous system Anatomy 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012502 risk assessment Methods 0.000 description 1
- 230000003068 static effect Effects 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
-
- 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
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06316—Sequencing of tasks or work
-
- 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
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Game Theory and Decision Science (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种数据处理方法及装置,用于提高数据处理的效率。所述方法包括:响应于目标业务的业务请求,获取目标业务的有向无环图和目标业务的目标服务出参,有向无环图包括目标微服务对应的节点以及节点之间的有向边,有向边表示所连接的节点之间的依赖关系,目标微服务为服务池中处理目标业务所需的微服务;基于上下文信息对有向无环图进行优化,上下文信息包括所述服务池中已被调用的微服务的服务出参的出参值;基于优化后的有向无环图对目标微服务进行调用,得到目标微服务对应的服务出参的出参值,以及将服务出参的出参值写入上下文信息;基于上下文信息和目标服务出参,返回业务请求对应的响应数据。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法及装置。
背景技术
微服务作为一种构建应用的架构方案,在应对复杂的业务架构,提升扩展性与维护性方面,相较于传统的单体应用和面向服务的体系架构(Service-OrientedArchitecture,SOA)有着巨大优势,能够用于解决业务增长带来的复杂性问题。尽管微服务在诸多方面有着明显优势,但是随着业务复杂度的提高,完成一个业务请求,往往需要几十上百个服务之间协调处理。
目前主流的业务处理方案,是根据微服务的服务类型,对实现业务所需的微服务进行分类,每一类微服务归属于一个层级进行调用,在每个层级中的微服务均调用结束后,再调用下一层级中的微服务;在所有层级中的微服务均调用结束后,对各层级的服务出参结果进行组装,完成本次业务请求事务。然而,由于不同层级之间存在依赖关系,每一层微服务的调用都需要等到上一层中所有微服务均调用结束后方能进行,任一层级中的任一微服务出现调用速度过慢,都会影响整个数据处理效率。
发明内容
本申请实施例的目的是提供一种数据处理方法及装置,用于提高数据处理的效率。
为了实现上述目的,本申请实施例采用下述技术方案:
第一方面,本申请实施例提供一种数据处理方法,包括:
响应于目标业务的业务请求,获取所述目标业务的有向无环图和所述目标业务的目标服务出参;
基于上下文信息对所述有向无环图进行优化,所述上下文信息包括服务池中已被调用的微服务的服务出参的出参值;
基于优化后的所述有向无环图对目标微服务进行调用,得到所述目标微服务对应的服务出参结果,以及将所述服务出参的出参值写入所述上下文信息;
基于所述上下文信息和所述目标服务出参,返回所述业务请求对应的响应数据;
其中,所述有向无环图包括目标微服务对应的节点以及节点之间的有向边,所述有向边表示所连接的节点之间的依赖关系,所述目标微服务为服务池中处理所述目标业务所需的微服务。
第二方面,本申请实施例提供一种数据处理装置,包括:
第一获取模块,用于响应于目标业务的业务请求,获取所述目标业务的有向无环图和所述目标业务的目标服务出参;
优化模块,用于基于上下文信息对所述有向无环图进行优化,所述上下文信息包括服务池中已被调用的微服务的服务出参的出参值;
调用模块,用于基于优化后的所述有向无环图对目标微服务进行调用,得到所述目标微服务对应的服务出参的出参值,以及将所述目标微服务对应的服务出参的出参值写入所述上下文信息;
响应模块,用于基于所述上下文信息和所述目标服务出参,返回所述业务请求对应的响应数据;
其中,所述有向无环图包括目标微服务对应的节点以及节点之间的有向边,所述有向边表示所连接的节点之间的依赖关系,所述目标微服务为服务池中处理所述目标业务所需的微服务。
第三方面,本申请实施例提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面所述的方法。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
通过将处理目标业务所需的目标微服务及目标微服务之间的依赖关系,以有向无环图的形式表示,有向无环图中的每个节点对应一个目标微服务,节点之间的有向边表示目标微服务之间的依赖关系,相当于将每个目标微服务都作为一个独立的单元;基于有向无环图对处理目标业务所需的目标微服务进行调用,使得在对每个目标微服务完成调用后,都能立即分析出所要调用的下游目标微服务,进而可以省去分层级调用方案中的等待时间,最大化利用处理资源,有利于提高业务处理效率;在此基础上,将服务池中已调用的微服务的服务出参的出参值写入上下文信息,并在基于有向无环图调用目标业务所需的目标微服务之前,基于上下文信息中已调用的微服务的服务出参的出参值,对有向无环图进行优化,基于上下文信息和目标业务的目标服务出参,对业务请求进行响应,可以避免已被调用且获得服务出参的出参值的目标微服务被重复调用,进而可以降低目标微服务的调用次数,减少对处理资源的消耗,同样有利于提高数据处理效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为一种基于分层级服务调用的数据处理方法的流程示意图;
图2为本申请的一个实施例提供的一种数据处理方法的流程示意图;
图3为本申请的一个实施例提供的一种有向无环图的构建方法的流程示意图;
图4为本申请的一个实施例提供的一种微服务之间的依赖关系的示意图;
图5为本申请的一个实施例提供的一种目标业务的有向无环图的示意图;
图6为本申请的一个实施例提供的一种有向无环图的优化方法的流程示意图;
图7为本申请的一个实施例提供的一种基于有向无环图的微服务调用过程的示意图;
图8为本申请的一个实施例提供的一种异常调用处理方式的示意图;
图9为本申请的一个实施例提供的一种数据处理方法所适用的应用场景示意图;
图10为本申请的另一个实施例提供的一种数据处理方法的流程示意图;
图11为本申请的一个实施例提供的一种数据处理装置的结构示意图;
图12为本申请的一个实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应理解,这样使用的数据在适当情况下可以互换,以便本申请实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,本说明书和权利要求书中“和/或”表示所连接对象的至少其中之一,字符“/”一般表示前后关联对象是一种“或”的关系。
部分概念说明:
SOA:Service-Oriented Architecture,面向服务的体系架构。它可以根据需求,通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。
ESB:Enterprise Service Bus,指的是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。
微服务:一种软件开发技术,面向SOA架构样式的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。
DAG:有向无环图,指的是一个无回路的有向无环图。如果有一个非有向无环图,且A点出发向B经C可回到A,形成一个环。将从C到A的边方向改为从A到C,则变成有向无环图。有向无环图的生成树个数等于入度非零的节点的入度积。
如前所述,随着业务复杂度的提高,完成一个业务请求,往往需要几十上百个服务之间协调处理。以金融风控业务为例,在对用户进行信用风险评估时,往往需要调用上千个不同类型的微服务,比如涉及内部数据源的微服务、涉及外部数据源的微服务、涉及变量的微服务以及涉及模型计算的微服务等。通常处理一次风控业务,都会优先调用内部微服务以获取用户的基本信息、黑名单等内部信息;然后,在调用外部微服务访问外部数据源,比如用户已授权的征信信息、信用评分、号码归属地等外部信息;然后,调用变量微服务和基础模型微服务,将获取的内部信息和外部信息传递给对应的变量或者基础模型进行加工;而后,调用融合模型微服务将加工结果传递给融合模型进行融合处理,等等。这样,最终的融合模型微服务的调用往往需要依赖于前面大量微服务的服务出参结果。
目前主流的业务处理方案,是根据微服务的服务类型,对处理业务所需的微服务进行分类,每一类微服务归属于一个层级进行调用,在每个层级中的微服务均调用结束后,再调用下一层级中的微服务;在所有层级中的微服务均调用结束后,对各层级的服务出参结果进行组装,完成本次业务请求事务。然而,由于不同层级之间存在依赖关系,每一层微服务的调用都需要等到上一层中所有微服务均调用结束后方能进行,任一层级中的任一微服务出现调用速度过慢,都会影响整个业务处理效率。
示例地,一种主流的业务处理方案是将涉及内部数据源的微服务、涉及外部数据源的微服务、涉及变量的微服务、涉及模型的微服务分别归属于一个层级,如图1所示,内部服务A和内部服务B属于层级1,外部服务A和外部服务B属于层级2,变量服务A属于层级3,模型服务A和模型服务B属于层级4,模型服务C和模型服务D属于层级5。假设层级1中的内部服务B出现调用超时,由于层级2中的微服务依赖于层级1中的微服务的调用结果,层级3至层级4各自中的微服务间接依赖层级1中的微服务的调用结果,那么,层级2中的微服务以及层级3至层级5各自中的微服务均需要等到层级1中的内部服务B调用结束后方能被调用,进而导致层级1的下游层级中微服务的调用速度被拖慢,最终影响整个业务处理效率。
有鉴于此,本申请实施例旨在提出一种数据处理方案,通过将处理目标业务所需的目标微服务及目标微服务之间的依赖关系,以有向无环图的形式表示,有向无环图中的每个节点对应一个目标微服务,节点之间的有向边表示目标微服务之间的依赖关系,相当于将每个目标微服务都作为一个独立的单元;基于有向无环图对处理目标业务所需的目标微服务进行调用,使得在对每个目标微服务完成调用后,都能立即分析出所要调用的下游目标微服务,进而可以省去分层级调用方案中的等待时间,最大化利用处理资源,有利于提高业务处理效率;在此基础上,将服务池中已调用的微服务的服务出参的出参值写入上下文信息,并在基于有向无环图调用目标业务所需的目标微服务之前,基于上下文信息中已调用的微服务的服务出参的出参值,对有向无环图进行优化,基于上下文信息和目标业务的目标服务出参,对业务请求进行响应,可以避免已被调用且获得服务出参的出参值的目标微服务被重复调用,进而可以降低目标微服务的调用次数,减少对处理资源的消耗,同样有利于提高数据处理效率。
应理解,本申请实施例提供的数据处理方法均可以由电子设备或安装在电子设备中的软件执行,具体可以由终端设备或服务端设备执行。
以下结合附图,详细说明本申请各实施例提供的技术方案。
请参考图2,为本申请的一个实施例提供的一种数据处理方法的流程示意图,该方法可以包括如下步骤:
S202,响应于目标业务的业务请求,获取目标业务的有向无环图和目标业务的目标服务出参。
其中,目标业务对应的有向无环图包括目标微服务对应的节点以及节点之间的有向边,有向边表示所连接的节点之间的依赖关系。目标微服务为服务池中处理目标业务所需的微服务。可以理解,不同节点之间的依赖关系即为不同节点对应的目标微服务之间的依赖关系,比如节点A依赖于节点B,也就是节点A对应的目标微服务依赖于节点B对应的目标微服务。
其中,每个业务具有对应的需求配置信息。目标业务的需求配置信息是指为目标业务预先配置好的、用于反映目标业务的业务需求的信息。具体而言,目标业务的需求配置信息可以包括目标业务的目标服务出参,其用于表示处理目标业务所需输出的参数。当然,可选地,目标业务的需求配置信息还可以包括目标业务的目标服务入参,其用于表示处理目标业务所需输入的参数。
例如,对于风控反欺诈业务而言,该业务的目标服务入参可以包括待检测对象已授权的历史信用相关数据,该业务的目标服务出参可以包括指示是否存在风控欺诈行为的风控结果等;又如,对于商品推荐业务而言,该业务的目标服务入参可以包括待推荐用户已授权的地理位置、历史消费记录等,该业务的目标服务出参可以包括推荐商品的商品相关信息等;再如,对于授信额度评估业务而言,该业务的目标服务入参可以包括待评估用户已授权的信用相关数据等,该业务的目标服务出参可以包括为待评估用户评估得到的授信额度等。
本申请实施例中,目标业务对应的有向无环图可通过任意适当的方式构建得到,具体构建方式可根据实际需要进行选择,本申请实施例对此不作限定。在一种可选的实现方式中,为快速建立能够准确反映目标微服务之间的依赖关系的有向无环图,可基于目标业务的需求配置信息和服务池中的微服务的服务配置信息,构建目标业务对应的有向无环图,其中,服务池中包括预先开发并配置好的多个微服务,不同的微服务用于实现不同的功能,不同微服务之间的互相协调、互相配合,可以处理相应的业务;微服务的服务配置信息可以包括但不限于微服务的元数据、访问策略等,其中,微服务的元数据具体可以包括但不限于微服务的服务入参、服务出参、调用地址、调用方式等,微服务的访问策略具体可以包括但不限于微服务的调用超时时间、重试次数、服务入参的预设初始值、服务出参的预设初始值、熔断策略以及降级策略等。
具体而言,如图3所示,在上述S202之前,本申请实施例的数据处理方法还包括有向无环图的构建方法,该构建方法包括如下步骤:
S302,基于目标业务的需求配置信息和服务池中的微服务的服务配置信息,从服务池中确定处理目标业务所需的目标微服务和目标微服务之间的依赖关系。
可选地,考虑到一个目标微服务的服务出参要么作为目标业务的目标服务出参,要么作为另一个目标微服务的服务入参,为保证处理目标业务所需的目标微服务之间的依赖关系的准确性,可重复执行如下处理,直至处理目标业务所需的目标微服务获取完毕:基于服务池中的微服务的服务出参,将服务池中具有目标服务出参的微服务,确定为处理目标业务所需的目标微服务;进一步,将该目标微服务作为第二起始目标微服务;若服务池中的微服务的服务出参属于第二起始目标微服务的服务入参,则将该微服务确定为第二起始目标微服务所依赖的第二终点目标微服务;将该第二终点目标微服务作为新的第二起始目标微服务。
需要说明的是,实际应用中,从服务池中选出的获得目标服务出参所需的微服务可能为多个,在此情形下,可将这些选出的微服务均确定为处理目标业务所需的目标微服务,并针对每个目标微服务,将该目标微服务作为第二起始目标微服务,通过上述操作得到该目标微服务所依赖的第二终点目标微服务。
示例地,如图4所示,目标业务的目标服务出参包括服务出参L、微服务出参P和服务出参Q,微服务Y的服务出参为服务出参L,微服务Z的服务出参包括服务出参P和服务出参Q,那么,可将微服务Y和微服务Z均确定为处理目标业务所需的目标微服务;进一步,分别将微服务Y和微服务Z作为第二起始目标微服务,从服务池中查询到微服务X的服务出参X不仅被用于微服务Y的服务入参J,还被用于微服务Z的服务入参O,由此可确定微服务Y依赖于微服务X,微服务Z也依赖于微服务Y,也即得到处理目标业务所需的目标微服务包括微服务X、微服务Y和微服务Z,其中,微服务Y依赖于微服务X,微服务Z依赖于微服务Y。
可选地,为快速获得处理目标业务所需的目标微服务及目标微服务之间的依赖关系,且避免上述过程陷入死循环而影响后续业务处理,在将当前确定的目标微服务作为第二起始目标微服务之前,上述S302还可以包括:在针对服务池中的各微服务,确定该微服务的服务出参是否属于第二起始目标微服务的服务入参之前,确定第二起始目标微服务的服务入参不属于目标服务入参;若第二起始目标微服务的服务入参属于目标服务入参,则表明已获得处理目标业务所需的目标微服务,进而停止执行后续确定服务池中的微服务的服务出参是否属于第二起始目标微服务的服务入参等操作。
示例地,仍以图4为例,在确定出微服务Y和微服务Z均依赖的微服务X之后,若微服务X的服务入参A属于目标业务的目标服务入参,则停止执行递归查询操作;否则,继续将微服务X作为新的第二起始目标微服务,重复上述过程,直到确定的目标微服务的服务入参属于目标业务的目标服务入参。
可以理解的是,在上述方案中,只需预先配置目标业务的目标服务出参,并预先配置各个微服务的服务出参和服务入参并将微服务保存至服务池中,即可通过递归查询的方式,自动获取处理目标业务的全部目标微服务及这些目标微服务之间的依赖关系,实现简单,效率高,且无需人工参与,进而可以消除人工参与过程中引入的错误且节省人力成本。
S304,基于处理目标业务所需的目标微服务以及目标微服务之间的依赖关系,构建目标业务对应的有向无环图。
为清晰直观地反映处理目标业务所需的目标微服务之间的依赖关系,以便在业务处理过程中能够按照先后顺序准确调用这些目标微服务,上述S304具体可实现为:基于处理目标业务所需的各个目标微服务,构建该目标微服务对应的节点;基于目标微服务之间的依赖关系,在相互依赖的目标微服务对应的节点之间构建有向边。
示例地,处理目标业务所需的目标微服务包括微服务A、微服务B、微服务C、微服务E、微服务F、微服务O、微服务P以及微服务Q,其中,微服务F依赖于微服务E和微服务Q,微服务E依赖于微服务B和微服务C,微服务B和微服务C均依赖于微服务A,微服务Q依赖于微服务C和微服务P,微服务P依赖于微服务Q,通过上述实现方式可构建如图5所示的有向无环图。
可以理解的是,通过将预先开发和配置好的微服务加入到服务池中,使得每个微服务都是一个独立的单元且能够被统一管理,实现一次接入多次使用,从而避免对微服务进行重复接入,有利于减少对处理资源的消耗;在构建目标业务对应的有向无环图时,只需根据目标业务的业务需求,预先配置目标业务的目标服务出参等服务配置信息,基于目标业务的需求配置信息和服务池中的微服务的服务入参和服务出参,即可确定处理目标业务所需的目标微服务和目标微服务之间的依赖关系,进而基于这些目标微服务之间的依赖关系,即可自动构建目标业务对应的有向无环图,不仅实现简单,效率高,无需人工参与,进而可以消除人工参与过程中引入的错误且节省人力成本,还使得得到的有向无环图能够清晰直观地反映处理目标业务所需的目标微服务之间的依赖关系,有利于后续业务处理过程中更方便快速地进行微服务调用,从而有利于提高业务处理效率。
实际应用中,在构建出目标业务对应的有向无环图之后,可将目标业务对应的有向无环图和需求配置信息可以打包生成目标业务的业务数据文件中,并将业务数据文件置于业务执行端,比如用于执行目标业务的业务服务器等,由业务执行端在接收到业务方针对目标业务的业务请求时,将目标业务的业务数据文件加载到内存中,并通过对业务数据文件进行解析,得到目标业务对应的有向无环图和需求配置信息。当然,处理目标业务所需的目标微服务的服务配置信息也可一起被打包集成在目标业务的业务数据文件中,进而业务执行端通过解析该业务数据文件,还可得到处理目标业务所需的目标微服务的服务配置信息,以便结合目标微服务的服务配置信息更好地进行业务处理。
S204,基于上下文信息对有向无环图进行优化。
本申请实施例中,上下文信息包括服务池中已被调用的微服务的服务出参的出参值。
考虑到服务池中已被调用的微服务的服务出参的出参值可以被依赖该微服务的其他微服务直接使用,为避免在业务处理过程中对已调用的微服务进行重复调用,从而减少调度处理资源,提高业务处理效率,在一种可选的实现方式中,可基于上下文信息中已被调用的微服务的服务出参的出参值,对目标业务对应的有向无环图进行优化。具体而言,上述S104可实现为:若上下文信息中存在有向无环图中的各节点对应的目标微服务的服务出参的出参值,则对该节点所依赖的其他节点进行裁剪,得到优化后的有向无环图。
示例地,如图6所示,查询到上下文信息中已存在原始的有向无环图中节点E对应的目标微服务的服务出参的出参值,表明节点E对应的目标微服务已被调用,进而可将节点E直接依赖的节点B和节点C以及节点B及节点C各自所依赖的节点A(也即节点E间接依赖的节点)裁剪掉,得到右侧所示的优化后的有向无环图。
本申请实施例在此示出了上述S204的一种具体实现方式。当然,应理解,上述S204也可以采用其它的方式实现,本申请实施例对此不作限定。
S206,基于优化后的有向无环图对目标微服务进行调用,得到目标微服务对应的服务出参的出参值,以及将目标微服务的服务出参的出参值写入上下文信息。
在得到优化后的有向无环图后,可基于该有向无环图指示的节点对应的目标微服务之间的依赖关系,依次调用处理目标业务所需的目标微服务,得到各个目标微服务对应的服务出参的出参值。
通过将已调用的目标微服务的服务出参的出参值写入上下文信息,使得该目标微服务的服务出参的出参值能够被其他业务重复利用,而无需在数据处理过程中重复对该目标微服务进行调用,实现一次成功调用多次复用,从而极大降低微服务调用次数,减少对处理资源的消耗以及减少外部数据源的访问成本。
示例地,如图7所示,在业务1的处理过程中,在基于业务1对应的有向无环图1进行微服务调用后,可得到微服务A~微服务F各自的服务出参的出参值并将得到服务出参的出参值写入上下文信息;对于业务2而言,由于处理业务2也需要微服务D,且上下文信息中已存在微服务D的服务出参的出参值,因而在业务2的处理过程中,无需再次调用微服务D,而是只调用微服务O、微服务P和微服务Q,并将得到的服务出参的出参值写入上下文信息;对于业务3而言,由于处理业务3也需要微服务D和微服务Q,且上下文信息中已存在微服务D及微服务Q各自的服务出参的出参值,因而在业务3的处理过程中,无需再次调用微服务D和微服务O,而是只调用微服务X、微服务Y和微服务Z,并将得到的服务出参的出参值写入上下文信息。
为准确、高效地调用目标微服务,在一种可选的实现方式中,上述S106具体可实现为:重复执行下述处理,直至处理目标业务所需的目标微服务调用完毕:从优化后的有向无环图中,选取入度满足预设调用条件的节点作为第一起始节点,并将优化后的有向无环图中依赖该第一起始节点的节点作为第一终点节点;调用第一起始目标微服务,得到第一起始目标微服务的服务出参的出参值并写入上下文信息,其中,第一起始目标微服务为对应第一起始节点的目标微服务;在成功调用第一起始目标微服务之后,更新第一终点节点的入度。其中,在有向无环图中,节点的入度是指节点作为有向边的终点的次数之和。预设调度条件可以根据实际需要进行设置,例如为入度为0,本申请实施例对此不作限定。
示例地,以图6所示的优化后的有向无环图为例,假设预设调度条件包括入度为0,则可将节点O作为第一起始节点,调用节点O对应的目标微服务,得到该目标微服务的服务出参的出参值并将该服务出参的出参值写入上下文信息,而后对依赖节点O的节点P的入度减1,此时节点P的入度变为0;依次类推,将节点P作为新的第一起始节点,重复上述过程,直到节点F对应的目标微服务调用结束。
可以理解的是,基于有向无环图中各节点的入度进行微服务调用,这样,在每个节点对应的目标微服务调用结束后,即可立即分析出所要调用的下游目标微服务,进而可以省去分层级调用方案中的等待时间,最大化利用处理资源,有利于提高业务处理效率。
在另一种可选的实现方式中,考虑到调用目标微服务的过程可能出现调用异常,为尽可能减少因个别微服务调用异常而对整个业务处理效率造成的影响,上述S206还可以包括:在更新第一终点节点的入度之前,若第一起始目标微服务调用异常,则获取第一终点目标微服务的服务入参的类型,其中,服务入参的类型包括必要服务入参和非必要服务入参,第一终点目标微服务为第一终点节点对应的目标微服务;基于第一终点目标微服务的服务入参的类型,确定第一起始目标微服务的服务出参是否为第一终点目标微服务的必要服务入参,若是,则停止更新所述第一终点节点的入度;相应地,若第一起始目标微服务的服务出参不是第一终点目标微服务的必要服务入参,则继续后续操作。
需要说明的是,实际应用中,依赖第一起始节点的第一终点节点可能为多个,在此情况下,在第一起始目标微服务调用结束后,可分别更新每个第一终点节点的入度。
示例地,如图8所示,在节点C对应的目标微服务(以下称为目标微服务C)调用异常的情况下,若目标微服务C的服务出参为节点E对应的目标微服务(以下称为目标微服务E)的必要服务入参,则停止更新节点E的入度,以停止调用目标微服务E,而目标微服务E的服务出参为节点F对应的目标微服务(以下称为目标微服务F)的必要服务入参,在目标微服务E无法被调用的情况下,目标微服务F也无法被调用;若目标微服务C的服务出参为节点Q对应的目标微服务(以下称为目标微服务Q)的非必要服务入参,则更新节点Q的入度,以便后续能够正常执行对目标微服务Q的调用操作。
可以理解的是,由于有的目标微服务的服务出参对于下游目标微服务而言,并非是一个必要的服务入参,比如内部微服务的服务出参只是用于提高下游的外部微服务的服务出参结果更精确,对于最终的业务处理结果而言并没有决定性作用,如果在这类目标微服务的服务异常时采用目前的重复尝试调用这一处理方式,将拖慢整个业务处理速度而得不偿失。有鉴于此,上述实现方式中,在基于优化后的有向无环图进行目标微服务调用时,基于当前调用异常的目标微服务的服务出参是否为下游目标微服务的必要服务入参,来确定是否继续调用下游目标微服务,相较于目前的重复尝试调用的处理方式,可以尽可能减少因个别微服务调用异常而对整个业务处理效率造成的影响。
在又一种较为优选的实现方式中,为避免对频繁出现异常调用的微服务进行调用而对整个业务处理过程产生影响,在进行目标微服务调用的过程中,还可根据预先为目标微服务配置的熔断策略,对频繁出现异常调用的目标微服务进行熔断处理,其中,熔断策略可以包括预设熔断条件及对应的熔断处理操作。
具体而言,上述S206还可以包括:在调用第一起始目标微服务之前,获取第一起始目标微服务的历史调用记录;若第一起始目标微服务的历史调用记录满足预设熔断条件,则暂停调用第一起始目标微服务。其中,预设熔断条件可以根据实际需要进行设置,不同的目标微服务可对应相同的预设熔断条件,或者,不同的目标微服务对应不同的预设熔断条件,本申请实施例对此不作限定。
示例地,微服务的历史调用记录可以包括微服务的历史调用次数、每次调用的调用执行结果等,预设熔断条件可以包括异常调用次数在历史调用次数中的占比超过预设比例阈值。若基于第一起始目标微服务的历史调用记录,确定出第一起始目标微服务出现异常调用的次数在第一起始目标微服务的历史调用次数中的占比超过预设比例阈值,则可暂停调用第一起始目标微服务,直到第一起始目标微服务恢复到不满足预设熔断条件时,重新启动调用第一起始目标微服务。
在又一种较为优选的实现方式中,为避免对频繁出现异常调用的微服务进行调用而对整个业务处理过程产生影响,在进行目标微服务调用的过程中,还可根据预先为目标微服务配置的降级策略,对频繁出现异常调用的目标微服务进行降级处理,其中,降级策略可以包括预设降级条件及对应的降级处理操作。
具体而言,上述S206还可以包括:在调用第一起始目标微服务之前,获取第一起始目标微服务的历史调用记录,若第一起始目标微服务的历史调用记录满足预设降级条件,则基于第一起始目标微服务对应的降级策略,暂停调用第一起始目标微服务,并执行第一起始目标微服务对应的调用降级处理。其中,调用降级处理包括如下处理中的至少一者:调用服务池中与第一起始目标微服务对应的备用微服务,将第一起始目标微服务的服务出参的预设初始出参值作为第一终点目标微服务的服务入参的入参值,其中,第一终点目标微服务为上述第一终点节点对应的目标微服务。
示例地,微服务的历史调用记录可以包括微服务的历史调用次数、每次调用的调用执行结果等,预设降级条件可以包括异常调用次数在历史调用次数中的占比超过预设比例阈值。若基于第一起始目标微服务的历史调用记录,确定出第一起始目标微服务出现异常调用的次数在第一起始目标微服务的历史调用次数中的占比超过预设比例阈值,则可暂停调用第一起始目标微服务,转为调用服务池中与第一起始目标微服务对应的备用微服务,直到第一起始目标微服务恢复到不满足预设降级条件时,重新切回至调用第一起始目标微服务;进一步地,若第一起始目标微服务未被配置有对应的备用微服务,则直接使用第一起始目标微服务的服务出参的预设初始出参值作为第一终点目标微服务的服务入参。
当然,在其他一些可选的实现方式中,为避免对频繁出现异常调用的微服务进行调用而对整个数据处理过程产生影响,还可为每个目标微服务配置相应的超时时间、重试次数、服务出参的预设初始出参值以及服务入参的预设初始出参值等访问策略,在进行目标微服务调用的过程中,还可根据预先为目标微服务配置的上述访问策略,对频繁出现异常调用的目标微服务进行相应的处理,其中,降级策略可以包括预设处理条件及对应的处理操作。
示例地,若第一起始目标微服务的调用时间超过该第一起始目标微服务的超时时间,则可按照上述降级策略对第一起始目标微服务进行降级处理;若降级处理失败,则直接使用第一起始目标微服务的服务出参的预设初始出参值作为第一终点目标微服务的服务入参的入参值;若未配置有第一起始目标微服务的服务出参的预设初始出参值,则在调用第一终点目标微服务时,直接使用第一终点目标微服务的服务入参的预设初始入参值。
又如,考虑到部分微服务会因为当时的网络抖动会在重试之后恢复正常,若第一起始目标微服务调用异常,则再次调用第一起始目标微服务,直到达到该第一起始目标微服务的重试次数。
本申请实施例在此示出了上述S206的一种具体实现方式。当然,应理解,上述S206也可以采用其它的方式实现,本申请实施例对此不作限定。
S208,基于上下文信息和目标业务的目标服务出参,返回业务请求对应的响应数据。
具体而言,可基于目标业务的目标服务出参,从上下文信息中查找目标服务出参的出参值,并对查找到的出参值组装成最终的响应数据并返回给业务方。
本申请实施例提供的数据处理方法,通过将处理目标业务所需的目标微服务及目标微服务之间的依赖关系,以有向无环图的形式表示,有向无环图中的每个节点对应一个目标微服务,节点之间的有向边表示目标微服务之间的依赖关系,相当于将每个目标微服务都作为一个独立的单元;基于有向无环图对处理目标业务所需的目标微服务进行调用,使得在对每个目标微服务完成调用后,都能立即分析出所要调用的下游目标微服务,进而可以省去分层级调用方案中的等待时间,最大化利用处理资源,有利于提高业务处理效率;在此基础上,将服务池中已调用的微服务的服务出参的出参值写入上下文信息,并在基于有向无环图调用目标业务所需的目标微服务之前,基于上下文信息中已调用的微服务的服务出参的出参值,对有向无环图进行优化,基于上下文信息和目标业务的目标服务出参,对业务请求进行响应,可以避免已被调用且获得服务出参的出参值的目标微服务被重复调用,进而可以降低目标微服务的调用次数,减少对处理资源的消耗,同样有利于提高数据处理效率。
在一种实际应用场景中,本申请实施例提供的数据处理方法,可以由开发人员基于目标业务的业务需求,为目标业务配置用于反映目标业务的业务需求的信息,比如包括但不限于目标业务的目标服务出参和目标服务入参等,以及对微服务进行开发和服务配置信息的设置后,将微服务存储至服务池,以供后续使用,由此完成微服务的接入;接着,由管理方基于目标业务的需求配置信息和服务池中的微服务的服务配置信息,构建目标业务对应的有向无环图并发布到业务服务器,由业务服务器基于目标业务对应的有向无环图,对针对目标业务的业务请求进行响应。下面结合该实际应用场景,对本申请实施例提供的数据处理方法进行说明。如图9所示,该应用场景包括客户端、管理服务器、业务服务器以及服务池。
其中,客户端可展示操作界面,以供开发人员进行微服务接入。如图10所示,开发人员可以开发能够处理不同功能的微服务,并为各个微服务设置相应的服务配置信息,其中,微服务的服务配置信息可以包括但不限于微服务的元数据、访问策略等,微服务的元数据信息具体可以包括但不限于微服务的服务入参、服务出参、调用地址、调用方式等,微服务的访问策略具体可以包括但不限于微服务的调用超时时间、重试次数、服务入参的预设初始入参值、服务出参的预设初始出参值、熔断策略以及降级策略等。而后,开发人员可通过客户端将各个微服务及其服务配置信息存储至服务池中,以供后续使用,由此完成服务接入。
需要说明的是,实际应用中,根据数据来源的不同,服务池中的微服务可以划分为内部微服务、外部微服务、变量微服务以及模型微服务等;根据数据访问方式的不同,服务池中的微服务可以划分为HTTP微服务、RPC微服务、MySQL微服务以及Hbbase微服务等。考虑到一些数据访问的特殊性,微服务的服务配置信息还可以包括针对微服务的特殊处理及参数转换策略,比如外部微服务的调用需要对应的鉴权密钥设置,或者,将外部微服务的服务出参结果从“A,B,C”形式转换为列表形式[A,B,C]等。
如图10所示,在服务编排过程中,业务方可通过客户端向管理服务器提供目标业务的需求配置信息,其中,需求配置信息可以包括但不限于目标业务的目标服务入参和目标服务出参。管理服务器可基于目标业务的需求配置信息和服务池中的微服务的服务配置信息,从服务池中确定处理目标业务所需的目标微服务以及目标微服务之间的依赖关系,并基于处理目标业务所需的目标微服务以及目标微服务之间的依赖关系,构建目标业务对应的有向无环图;而后,管道里服务器将目标业务对应的有向无环图及需求配置信息以及处理目标业务所需的目标微服务的服务配置信息一起打包,生成目标业务的业务数据文件并发送给业务服务器,由此,完成微服务的编排。进一步地,管理服务器还可将目标业务的有向无环图发送给客户端,以供客户端展示给开发人员,以便开发人员能够基于可视化的有向无环图实现数据分析、业务运维处理以及调用修改等,且每一次修改都有迹可循,不同微服务之间的血缘清晰可见等分。
如图10所示,在需要执行目标业务时,业务方可通过客户端向业务服务器发送针对目标业务的业务请求。业务服务器响应于该业务请求,将目标业务的业务数据文件加载至内存中并对业务数据文件进行解析,得到目标业务的有向无环图和需求配置信息,当然,还可以解析得到处理目标业务所需的目标微服务的服务配置信息。进一步地,业务服务器基于上下文信息中记录的已调用的微服务的服务出参的出参值,对有向无环图进行优化,而后基于优化后的有向无环图对目标微服务进行调用,得到目标微服务对应的服务出参的出参值并将得到的服务出参的出参值写入上下文信息,最后基于上下文信息和目标业务的目标服务出参,向业务方返回业务请求对应的响应数据,由此,完成微服务调用,以完成对目标业务的处理。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
此外,与上述图2所示的数据处理方法相对应地,本申请实施例还提供一种数据处理装置。图11为本申请的一个实施例提供的一种数据处理装置1100的结构示意图,该装置包括:
第一获取模块1110,用于响应于目标业务的业务请求,获取所述目标业务的有向无环图和所述目标业务的目标服务出参;
优化模块1120,用于基于上下文信息对所述有向无环图进行优化,所述上下文信息包括服务池中已被调用的微服务的服务出参的出参值;
调用模块1130,用于基于优化后的所述有向无环图对目标微服务进行调用,得到所述目标微服务对应的服务出参的出参值,以及将所述目标微服务对应的服务出参的出参值写入所述上下文信息;
响应模块1140,用于基于所述上下文信息和所述目标服务出参,向所述业务方返回所述业务请求对应的响应数据;
其中,所述有向无环图包括目标微服务对应的节点以及节点之间的有向边,所述有向边表示所连接的节点之间的依赖关系,所述目标微服务为服务池中处理所述目标业务所需的微服务。
本申请实施例提供的数据处理装置,通过将处理目标业务所需的目标微服务及目标微服务之间的依赖关系,以有向无环图的形式表示,有向无环图中的每个节点对应一个目标微服务,节点之间的有向边表示目标微服务之间的依赖关系,相当于将每个目标微服务都作为一个独立的单元;基于有向无环图对处理目标业务所需的目标微服务进行调用,使得在对每个目标微服务完成调用后,都能立即分析出所要调用的下游目标微服务,进而可以省去分层级调用方案中的等待时间,最大化利用处理资源,有利于提高业务处理效率;在此基础上,将服务池中已调用的微服务的服务出参的出参值写入上下文信息,并在基于有向无环图调用目标业务所需的目标微服务之前,基于上下文信息中已调用的微服务的服务出参的出参值,对有向无环图进行优化,基于上下文信息和目标业务的目标服务出参,对业务请求进行响应,可以避免已被调用且获得服务出参的出参值的目标微服务被重复调用,进而可以降低目标微服务的调用次数,减少对处理资源的消耗,同样有利于提高数据处理效率。
可选地,所述优化模块包括:
优化子模块,用于若所述上下文信息中存在所述有向无环图中的各节点对应的目标微服务的服务出参值,
则对所述节点所依赖的其他节点进行裁剪,得到优化后的所述有向无环图。
可选地,所述调用模块,具体用于:
重复执行下述处理,直至处理所述目标业务所需的目标微服务调用完毕:
从优化后的所述有向无环图中,选取入度满足预设调用条件的节点作为第一起始节点,并将优化后的所述有向无环图中依赖所述第一起始节点的节点作为第一终点节点;
调用第一起始目标微服务,得到所述第一起始目标微服务的服务出参的出参值,其中,所述第一起始目标微服务为所述第一起始节点对应的目标微服务;
在成功调用所述第一起始目标微服务之后,更新所述第一终点节点的入度。
可选地,所述调用模块,还用于:
在更新第一终点节点的入度之前,若所述第一起始目标微服务调用异常,则获取第一终点目标微服务的服务入参的类型,其中,所述服务入参的类型包括必要服务入参和非必要服务入参,所述第一终点目标微服务为所述第一终点节点对应的目标微服务;
基于所述第一终点目标微服务的服务入参的类型,确定所述第一起始目标微服务的服务出参是否为所述第一终点目标微服务的必要服务入参;
若所述第一起始目标微服务的服务出参为所述第一终点目标微服务的必要服务入参,则停止更新所述第一终点节点的入度。
可选地,所述调用模块,还用于:
在调用第一起始目标微服务之前,获取所述第一起始目标微服务的历史调用记录;
若所述历史调用记录满足预设熔断条件,则暂停调用所述第一起始目标微服务。
可选地,所述调用模块,还用于:
在调用第一起始目标微服务之前,获取所述第一起始目标微服务的历史调用记录;
若所述历史调用记录满足预设降级条件,则基于所述第一起始目标微服务对应的降级策略,暂停调用所述第一起始目标微服务,并执行所述第一起始目标微服务对应的调用降级处理,所述调用降级处理包括如下处理中的至少一者:调用所述服务池中与所述第一起始目标微服务对应的备用微服务,将所述第一起始目标微服务的服务出参的预设初始出参值作为第一终点目标微服务的服务入参的入参值,所述第一终点目标微服务为所述第一终点节点对应的目标微服务。
可选地,所述装置还包括:
第一确定模块,用于在所述第一获取模块响应于目标业务的业务请求,获取所述目标业务对应的有向无环图和所述目标业务的目标服务出参之前,基于所述目标业务的需求配置信息和所述服务池中的微服务的服务配置信息,从所述服务池中确定处理所述目标业务所需的目标微服务以及所述目标微服务之间的依赖关系;
构建模块,用于所述目标业务所需的目标微服务以及所述依赖关系,构建所述目标业务对应的有向无环图;
其中,所述需求配置信息包括所述目标业务的目标服务出参,所述微服务的服务配置信息包括所述微服务的服务入参和服务出参,所述依赖关系为所述目标微服务之间的依赖关系。
可选地,所述第一确定模块,具体用于:
重复执行下述处理,直至处理所述目标业务所需的目标微服务获取完毕:
基于所述服务池中的微服务的服务出参,将所述服务池中具有所述目标服务出参的微服务,确定为处理所述目标业务所需的目标微服务;
将当前确定的目标微服务作为第二起始目标微服务;
若所述服务池中的微服务的服务出参属于所述第二起始目标微服务的服务入参,则将所述微服务确定为所述第二起始目标微服务所依赖的第二终点目标微服务;将所述第二终点目标微服务作为新的第二起始目标微服务。
可选地,所述需求配置信息还包括所述目标业务的目标服务入参,所述第一确定模块,还用于:
在将当前确定的目标微服务作为第二起始目标微服务之前之前,确定所述第二起始目标微服务的服务入参不属于所述目标服务入参。
可选地,所述构建子模块基于实现所述目标业务所需的目标微服务以及目标微服务之间的依赖关系,构建所述目标业务对应的有向无环图,包括:
基于处理所述目标业务所需的各个目标微服务,构建所述目标微服务对应的节点;
基于所述依赖关系,在相互依赖的目标微服务对应的节点之间构建有向边。
显然,本申请实施例的数据处理装置可以作为上述图2所示的数据处理方法的执行主体,因此能够实现数据处理方法在图2所实现的功能。由于原理相同,在此不再重复说明。
图12是本申请的一个实施例电子设备的结构示意图。请参考图12,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据处理装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
响应于目标业务的业务请求,获取所述目标业务的有向无环图和所述目标业务的目标服务出参;
基于上下文信息对所述有向无环图进行优化,所述上下文信息包括服务池中已被调用的微服务的服务出参的出参值;
基于优化后的所述有向无环图对目标微服务进行调用,得到所述目标微服务对应的服务出参结果,以及将所述服务出参的出参值写入所述上下文信息;
基于所述上下文信息和所述目标服务出参,返回所述业务请求对应的响应数据;
其中,所述有向无环图包括目标微服务对应的节点以及节点之间的有向边,所述有向边表示所连接的节点之间的依赖关系,所述目标微服务为服务池中处理所述目标业务所需的微服务。
上述如本申请图2所示实施例揭示的数据处理装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图2的方法,并实现数据处理装置在图2所示实施例的功能,本申请实施例在此不再赘述。
当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图2所示实施例的方法,并具体用于执行以下操作:
响应于目标业务的业务请求,获取所述目标业务的有向无环图和所述目标业务的目标服务出参;
基于上下文信息对所述有向无环图进行优化,所述上下文信息包括服务池中已被调用的微服务的服务出参的出参值;
基于优化后的所述有向无环图对目标微服务进行调用,得到所述目标微服务对应的服务出参结果,以及将所述服务出参的出参值写入所述上下文信息;
基于所述上下文信息和所述目标服务出参,返回所述业务请求对应的响应数据;
其中,所述有向无环图包括目标微服务对应的节点以及节点之间的有向边,所述有向边表示所连接的节点之间的依赖关系,所述目标微服务为服务池中处理所述目标业务所需的微服务。
总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (13)
1.一种数据处理方法,其特征在于,包括:
响应于目标业务的业务请求,获取所述目标业务的有向无环图和所述目标业务的目标服务出参;
基于上下文信息对所述有向无环图进行优化,所述上下文信息包括服务池中已被调用的微服务的服务出参的出参值;
基于优化后的所述有向无环图对目标微服务进行调用,得到所述目标微服务对应的服务出参的出参值,以及将所述服务出参的出参值写入所述上下文信息;
基于所述上下文信息和所述目标服务出参,返回所述业务请求对应的响应数据;
其中,所述有向无环图包括目标微服务对应的节点以及节点之间的有向边,所述有向边表示所连接的节点之间的依赖关系,所述目标微服务为服务池中处理所述目标业务所需的微服务。
2.根据权利要求1所述的方法,其特征在于,所述基于上下文信息对所述有向无环图进行优化,包括:
若所述上下文信息中存在所述有向无环图中的各节点对应的目标微服务的服务出参值,
则对所述节点所依赖的其他节点进行裁剪,得到优化后的所述有向无环图。
3.根据权利要求1所述的方法,其特征在于,所述基于优化后的所述有向无环图对目标微服务进行调用,得到所述目标微服务对应的服务出参的出参值,包括:
重复执行下述处理,直至处理所述目标业务所需的目标微服务调用完毕:
从优化后的所述有向无环图中,选取入度满足预设调用条件的节点作为第一起始节点,并将优化后的所述有向无环图中依赖所述第一起始节点的节点作为第一终点节点;
调用第一起始目标微服务,得到所述第一起始目标微服务的服务出参的出参值,其中,所述第一起始目标微服务为所述第一起始节点对应的目标微服务;
在成功调用所述第一起始目标微服务之后,更新所述第一终点节点的入度。
4.根据权利要求3所述的方法,其特征在于,所述基于优化后的所述有向无环图对目标微服务进行调用,得到所述目标微服务对应的服务出参的出参值,还包括:
在更新所述第一终点节点的入度之前,若所述第一起始目标微服务调用异常,则获取第一终点目标微服务的服务入参的类型,其中,所述服务入参的类型包括必要服务入参和非必要服务入参,所述第一终点目标微服务为所述第一终点节点对应的目标微服务;
基于所述第一终点目标微服务的服务入参的类型,确定所述第一起始目标微服务的服务出参是否为所述第一终点目标微服务的必要服务入参;
若是,则停止更新所述第一终点节点的入度。
5.根据权利要求3所述的方法,其特征在于,所述基于优化后的所述有向无环图对目标微服务进行调用,得到所述目标微服务对应的服务出参的出参值,还包括:
在调用第一起始目标微服务之前,获取所述第一起始目标微服务的历史调用记录;
若所述历史调用记录满足预设熔断条件,则暂停调用所述第一起始目标微服务。
6.根据权利要求3所述的方法,其特征在于,所述基于优化后的所述有向无环图对目标微服务进行调用,得到所述目标微服务对应的服务出参的出参值,还包括:
在调用第一起始目标微服务之前,获取所述第一起始目标微服务的历史调用记录;
若所述历史调用记录满足预设降级条件,则基于所述第一起始目标微服务对应的降级策略,暂停调用所述第一起始目标微服务,并执行所述第一起始目标微服务对应的调用降级处理,所述调用降级处理包括如下处理中的至少一者:调用所述服务池中与所述第一起始目标微服务对应的备用微服务,将所述第一起始目标微服务的服务出参的预设初始出参值作为第一终点目标微服务的服务入参的入参值,所述第一终点目标微服务为所述第一终点节点对应的目标微服务。
7.根据权利要求1所述的方法,其特征在于,在响应于目标业务的业务请求,获取所述目标业务对应的有向无环图和所述目标业务的目标服务出参之前,所述方法还包括:
基于所述目标业务的需求配置信息和所述服务池中的微服务的服务配置信息,从所述服务池中确定处理所述目标业务所需的目标微服务以及所述目标微服务之间的依赖关系;
基于所述目标微服务以及所述依赖关系,构建所述目标业务对应的有向无环图;
其中,所述需求配置信息包括所述目标业务的目标服务出参,所述微服务的服务配置信息包括所述微服务的服务入参和服务出参,所述依赖关系为所述目标微服务之间的依赖关系。
8.根据权利要求7所述的方法,其特征在于,所述基于所述目标业务的需求配置信息和所述服务池中的微服务的服务配置信息,从所述服务池中确定处理所述目标业务所需的目标微服务以及所述目标微服务之间的依赖关系,包括:
重复执行下述处理,直至处理所述目标业务所需的目标微服务获取完毕:
基于所述服务池中的微服务的服务出参,将所述服务池中具有所述目标服务出参的微服务,确定为处理所述目标业务所需的目标微服务;
将当前确定的目标微服务作为第二起始目标微服务;
若所述服务池中的微服务的服务出参属于所述第二起始目标微服务的服务入参,则将所述微服务确定为所述第二起始目标微服务所依赖的第二终点目标微服务;
将所述第二终点目标微服务作为新的第二起始目标微服务。
9.根据权利要求8所述的方法,其特征在于,所述需求配置信息还包括所述目标业务的目标服务入参,所述将当前确定的目标微服务作为第二起始目标微服务之前,所述方法还包括:
确定所述第二起始目标微服务的服务入参不属于所述目标服务入参。
10.根据权利要求7所述的方法,其特征在于,所述基于所述目标微服务以及所述依赖关系,构建所述目标业务对应的有向无环图,包括:
基于处理所述目标业务所需的各个目标微服务,构建所述目标微服务对应的节点;
基于所述依赖关系,在相互依赖的目标微服务对应的节点之间构建有向边。
11.一种数据处理装置,其特征在于,包括:
第一获取模块,用于响应于目标业务的业务请求,获取所述目标业务的有向无环图和所述目标业务的目标服务出参;
优化模块,用于基于上下文信息对所述有向无环图进行优化,所述上下文信息包括服务池中已被调用的微服务的服务出参的出参值;
调用模块,用于基于优化后的所述有向无环图对目标微服务进行调用,得到所述目标微服务对应的服务出参的出参值,以及将所述目标微服务对应的服务出参的出参值写入所述上下文信息;
响应模块,用于基于所述上下文信息和所述目标服务出参,返回所述业务请求对应的响应数据;
其中,所述有向无环图包括目标微服务对应的节点以及节点之间的有向边,所述有向边表示所连接的节点之间的依赖关系,所述目标微服务为服务池中处理所述目标业务所需的微服务。
12.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至10中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至10中任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210443663.5A CN116996556A (zh) | 2022-04-26 | 2022-04-26 | 数据处理方法及装置 |
EP23794653.8A EP4346191A4 (en) | 2022-04-26 | 2023-01-03 | DATA PROCESSING METHOD AND APPARATUS |
PCT/CN2023/070224 WO2023207213A1 (zh) | 2022-04-26 | 2023-01-03 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210443663.5A CN116996556A (zh) | 2022-04-26 | 2022-04-26 | 数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116996556A true CN116996556A (zh) | 2023-11-03 |
Family
ID=88517178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210443663.5A Pending CN116996556A (zh) | 2022-04-26 | 2022-04-26 | 数据处理方法及装置 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4346191A4 (zh) |
CN (1) | CN116996556A (zh) |
WO (1) | WO2023207213A1 (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10182129B1 (en) * | 2014-06-19 | 2019-01-15 | Amazon Technologies, Inc. | Global optimization of a service-oriented system |
CN109391689A (zh) * | 2018-10-08 | 2019-02-26 | 郑州云海信息技术有限公司 | 一种微服务应用程序编程接口调用的方法及装置 |
CN109582472B (zh) * | 2018-10-19 | 2021-05-18 | 华为技术有限公司 | 一种微服务处理方法及设备 |
CN111049878B (zh) * | 2019-10-23 | 2023-03-21 | 平安科技(深圳)有限公司 | 微服务调用链具象化的方法、装置、电子装置及存储介质 |
US11080120B2 (en) * | 2019-12-20 | 2021-08-03 | Capital One Services, Llc | Transaction exchange platform with watchdog microservice |
CN111522661A (zh) * | 2020-04-22 | 2020-08-11 | 腾讯科技(深圳)有限公司 | 一种微服务管理系统、部署方法及相关设备 |
CN112328221A (zh) * | 2020-11-06 | 2021-02-05 | 深圳壹账通智能科技有限公司 | 基于微服务框架的数据结构转化方法、装置及计算机设备 |
CN112995324B (zh) * | 2021-03-10 | 2023-07-14 | 中国民航信息网络股份有限公司 | 服务调用方法、装置、计算机可读介质以及设备 |
CN113296981A (zh) * | 2021-05-25 | 2021-08-24 | 建信金融科技有限责任公司 | 数据处理方法、装置、电子设备及存储介质 |
-
2022
- 2022-04-26 CN CN202210443663.5A patent/CN116996556A/zh active Pending
-
2023
- 2023-01-03 EP EP23794653.8A patent/EP4346191A4/en active Pending
- 2023-01-03 WO PCT/CN2023/070224 patent/WO2023207213A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
EP4346191A1 (en) | 2024-04-03 |
WO2023207213A1 (zh) | 2023-11-02 |
EP4346191A4 (en) | 2024-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107450981B (zh) | 一种区块链共识方法及设备 | |
CN107450979B (zh) | 一种区块链共识方法及装置 | |
EP3565219B1 (en) | Service execution method and device | |
CN110032599B (zh) | 数据结构的读取及更新方法、装置、电子设备 | |
CN111967849A (zh) | 一种任务处理流程编排方法、装置及电子设备 | |
CN110704037B (zh) | 一种规则引擎实现方法及装置 | |
CN110020542B (zh) | 数据读写方法及装置、电子设备 | |
CN109598407B (zh) | 一种业务流程的执行方法及装置 | |
JP2017514218A (ja) | サードパーティアプリケーションの実行 | |
CN110740194B (zh) | 基于云边融合的微服务组合方法及应用 | |
CN110032598B (zh) | 字段更新方法及装置、电子设备 | |
CN112230616A (zh) | 一种联动控制方法、装置及联动中间件 | |
US11775507B2 (en) | Methods and apparatuses for reading and updating data structures, and electronic devices | |
CN109725989B (zh) | 一种任务执行的方法及装置 | |
CN112560114B (zh) | 调用智能合约的方法及装置 | |
CN111221643A (zh) | 任务处理方法和任务处理装置 | |
CN111597058B (zh) | 一种数据流处理方法及系统 | |
CN109639747B (zh) | 数据请求处理、询问消息处理方法、装置以及设备 | |
CN112579319A (zh) | 一种基于LRU Cache优化的服务调用方法及装置 | |
CN110457132B (zh) | 一种功能对象的创建方法、装置和终端设备 | |
CN111142925A (zh) | 一种管道式数据处理方法、设备以及存储介质 | |
CN110764930A (zh) | 基于消息模式的请求或应答处理方法及装置 | |
CN116933886B (zh) | 一种量子计算执行方法、系统、电子设备及存储介质 | |
CN111198677A (zh) | 一种设备对象生成方法、装置及设备 | |
CN110858242A (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 |