CN111198727B - 微服务接口数据聚合系统及方法 - Google Patents

微服务接口数据聚合系统及方法 Download PDF

Info

Publication number
CN111198727B
CN111198727B CN202010009836.3A CN202010009836A CN111198727B CN 111198727 B CN111198727 B CN 111198727B CN 202010009836 A CN202010009836 A CN 202010009836A CN 111198727 B CN111198727 B CN 111198727B
Authority
CN
China
Prior art keywords
request
configuration item
module
aggregation
micro
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
Application number
CN202010009836.3A
Other languages
English (en)
Other versions
CN111198727A (zh
Inventor
唐祎龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Cooper Technology Group Co ltd
Original Assignee
Sichuan Cooper Technology Group Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sichuan Cooper Technology Group Co ltd filed Critical Sichuan Cooper Technology Group Co ltd
Priority to CN202010009836.3A priority Critical patent/CN111198727B/zh
Publication of CN111198727A publication Critical patent/CN111198727A/zh
Application granted granted Critical
Publication of CN111198727B publication Critical patent/CN111198727B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Abstract

本申请提供一种微服务接口数据聚合系统及方法,所述系统包括:配置模块、请求解析模块、请求分发模块以及聚合模块。其中,配置模块被在获取原始请求后,根据所述原始请求生成请求配置项,以使请求解析模块根据请求配置项中的请求映射配置项拆解所述原始请求,生成多个子请求,以及通过请求分发模块将多个所述子请求分发至多个微服务,并接收各微服务返回的执行结果,以使聚合模块将多个执行结果进行聚合计算,生成聚合结果。所述系统可以并发获取底层数据,提高接口响应速度,并且支持自定义数据聚合过程,使得接口的变更和维护更加高效。

Description

微服务接口数据聚合系统及方法
技术领域
本申请涉及技术领域,尤其涉及一种微服务接口数据聚合系统及方法。
背景技术
微服务架构微是一项在云端部署应用和服务的新技术,可以在自己的程序中运行,并通过轻量级设备与HTTP型API(Application Programming Interface,应用程序接口)进行沟通,实现相应的业务能力。
在微服务架构下,高层业务数据来源于多个底层微服务。因此,对于复杂业务数据,一般需要通过在各个底层微服务之间完成一次或多次RPC(Remote Procedure Call,远程过程调用)过程来获取。现有的微服务架构Spring-cloud、Dubbo等虽然提供了各自的RPC方法,但是缺乏灵活性,即每当底层微服务为新的业务需求提供了新的接口,对于处于前端和底层微服务之间的前置系统来说,就需要针对新接口做对接,或者做代码层面的兼容。
随着业务需求的变更以及增加,底层微服务为了支持新的业务需求,微服务的数量,接口的数量也会持续增加,使得接口对接或代码兼容的工作越来越多,极大地增加对接工作量。也使得接口对接的效率降低,容易出错。
发明内容
本申请提供了一种微服务接口数据聚合系统及方法,以解决的问题。
一方面,本申请提供一种微服务接口数据聚合系统,包括:配置模块、请求解析模块、请求分发模块以及聚合模块;
其中,所述配置模块被配置为:获取原始请求,以及根据所述原始请求生成请求配置项;所述请求配置项包括请求映射配置项、路由方式配置项、请求分发模式配置项以及请求聚合模式配置项;
所述请求解析模块被配置为:根据所述请求映射配置项拆解所述原始请求,生成多个子请求;
所述请求分发模块被配置为:根据所述路由方式配置项和所述请求分发模式配置项将多个所述子请求分发至多个微服务;以及,接收各微服务返回的执行结果,并将所述执行结果转发至所述聚合模块;
所述聚合模块被配置为:根据所述请求聚合模式配置项将多个执行结果进行聚合计算,生成聚合结果;以及,将所述聚合结果发送至所述配置模块。
可选的,所述配置模块通过网关设备连接用户终端,以通过所述网关设备获取所述用户终端发送的原始请求;以及通过所述网关设备向所述用户终端发送聚合结果。
可选的,所述请求配置项还包括数据聚合计算公式配置项;
所述聚合模块还被配置为,根据所述数据聚合计算公式配置项将多个执行结果聚合为一个聚合结果。
可选的,所述请求分发模式配置项包括:有序分发和无序分发;
所述配置模块被进一步配置为:判断所述原始请求是否为无序请求;
如果所述原始请求是无序请求,生成包含无序分发模式的请求分发模式配置项;
如果所述原始请求是有序请求,生成包含有序分发模式的请求分发模式配置项,以及指定子请求的分发顺序。
可选的,所述请求分发模块被进一步配置为:
如果所述原始请求是无序请求,将多个子请求并行分发至多个微服务;
如果所述原始请求是有序请求,按照所述分发顺序串行将多个子请求分发至多个微服务。
可选的,所述配置模块被进一步配置为:
判断所述原始请求是否需要拆分;
如果所述原始请求需要拆分,生成请求映射配置项;
将所述原始请求和所述请求映射配置项发送至所述请求解析模块;
如果所述原始请求无需拆分,将所述原始请求发送至所述请求分发模块。
可选的,如果所述原始请求无需拆分,所述请求分发模块被进一步配置为:
解析所述原始请求的目标微服务;
遍历微服务接口,确定目标微服务对应的接口;
将所述原始请求通过确定的接口,发送至所述目标微服务。
可选的,所述请求配置项为包含请求映射配置项、路由方式配置项、请求分发模式配置项以及请求聚合模式配置项的数据表;所述配置模块被进一步配置为:
同时向所述请求解析模块、请求分发模块以及聚合模块发送所述请求配置项。
另一方面,本申请还提供一种微服务接口数据聚合方法,包括:
获取原始请求;
根据所述原始请求生成请求配置项;所述请求配置项包括请求映射配置项、路由方式配置项、请求分发模式配置项以及请求聚合模式配置项;
根据所述请求映射配置项拆解所述原始请求,生成多个子请求;
根据所述路由方式配置项和所述请求分发模式配置项,将多个所述子请求分发至多个微服务;
接收各微服务返回的执行结果;
根据所述请求聚合模式配置项将多个执行结果进行聚合计算,生成聚合结果。
可选的,在获取原始请求后,所述方法还包括:
判断所述原始请求是否为无序请求;
如果所述原始请求是无序请求,生成包含无序分发模式的所述请求分发模式配置项;
将多个子请求并行分发至多个微服务;
如果所述原始请求是有序请求,生成包含有序分发模式的所述请求分发模式配置项,以及指定子请求的分发顺序;
按照所述分发顺序串行将多个子请求分发至多个微服务。
由以上技术方案可知,本申请提供一种微服务接口数据聚合系统及方法,所述系统包括:配置模块、请求解析模块、请求分发模块以及聚合模块。其中,配置模块被在获取原始请求后,根据所述原始请求生成请求配置项,以使请求解析模块根据请求配置项中的请求映射配置项拆解所述原始请求,生成多个子请求,以及通过请求分发模块将多个所述子请求分发至多个微服务,并接收各微服务返回的执行结果,以使聚合模块将多个执行结果进行聚合计算,生成聚合结果。所述系统可以并发获取底层数据,提高接口响应速度,并且支持自定义数据聚合过程,使得接口的变更和维护更加高效。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一种微服务接口数据聚合系统的结构示意图;
图2为本申请解析原始请求的流程示意图;
图3为本申请判断原始请求是否无序请求的数据流程图;
图4为本申请判断原始请求是否需要拆分的数据流程图;
图5为本申请一种微服务接口数据聚合方法的流程示意图;
图6为本申请判断原始请求是否为无序请求的流程示意图;
图7为本申请判断原始请求是否需要拆分的流程示意图;
图8为本申请原始请求无需拆分时确定目标微服务的流程示意图。
具体实施方式
下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。仅是与权利要求书中所详述的、本申请的一些方面相一致的系统和方法的示例。
参见图1,为本申请一种微服务接口数据聚合系统的结构示意图。由图1可知,本申请提供的微服务接口数据聚合系统,包括:配置模块1、请求解析模块2、请求分发模块3以及聚合模块4。各模块可以相互通信传递配置文件或数据,以形成聚合系统。所形成的聚合系统可以接入微服务架构中,即同时连接多个用户终端5和多个微服务(A、B、C、D)的API。
实际应用中,用户根据自身需要在用户终端中发布请求,聚合系统会根据发布的请求先对请求进行分解,以分发至多个微服务模块进行响应,微服务模块在针对各自接收到的请求反馈请求的执行结果;聚合系统再将执行结果进行聚合运算,以统一反馈给用户终端,完成接口数据配置。
具体地,所述配置模块1被配置为:获取原始请求,以及根据所述原始请求生成请求配置项。其中,所述请求配置项是配置模块1根据原始请求作出的多种数据处理方式对应的数据项。例如,针对请求解析模块2配置的请求映射配置项;针对请求分发模块3配置的路由方式配置项和请求分发模式配置项;以及,针对聚合模块4配置的请求聚合模式配置项。
可见,本申请中配置模块1可用于配置请求映射以及路由方式;配置请求分发模式,例如:并行/串行方式,有序/无序方式等;配置数据聚合模式,例如,对执行结果数据求交集/求并集等逻辑运算,以控制请求解析模块2、请求分发模块3以及聚合模块4,完成对原始请求的分发和聚合。
所述请求解析模块2被配置为:根据所述请求映射配置项拆解所述原始请求,生成多个子请求。实际应用中,配置模块1在生成请求配置项后,可以向请求解析模块2、请求分发模块3以及聚合模块4发送对应的请求配置项。请求解析模块2在接收到请求配置项后,可以对请求配置项中关于请求分解部分的配置项进行提取,以处理原始请求。
即,如图2所示,请求解析模块2可以根据配置模块1中的请求映射配置项,拆解原始请求。实际应用中,对原始请求的拆解可底层微服务的功能限定为依据。请求解析模块2可以针对原始请求所需求的总功能,分解为多个小功能,即对应多个子请求。
由于微服务具有多个层级结构,上层微服务所实现的功能包含下级微服务,并且统一微服务所具有的功能是可以变化的,例如部分微服务会整合新功能。因此,在实际应用中,请求解析模块2还可以对拆解的请求进行二次组装,以降低接口配置数量,从而尽量快的完成接口数据对接。
所述请求分发模块3被配置为:根据所述路由方式配置项和所述请求分发模式配置项将多个所述子请求分发至多个微服务。在请求解析模块2完成对原始请求的拆解或组装后,请求分发模块3可以针对拆解获得的多个子请求分别进行分发传递,使得各子请求以相互独立的方式向微服务模块发起访问。
各微服务在接收到子请求后,可以针对子请求执行相应的接口对接,即对接微服务的API。在完成接口对接后,微服务模块可以反馈执行结果,以完成用户终端与微服务的接口对接,实现相应的功能。因此,请求分发模块3还被配置为接收各微服务返回的执行结果,并将所述执行结果转发至所述聚合模块。
所述聚合模块4被配置为:根据所述请求聚合模式配置项将多个执行结果进行聚合计算,生成聚合结果。实际应用中,针对每个子请求,微服务模块会针对接收到的子请求反馈执行结果,其中执行结果包括接口的对接方式等数据。
例如,对于一个原始请求Q,经请求解析模块2处理后,生成Q1,Q2,Q3三个子请求,再通过请求分发模块3,将子请求Q1、Q2、Q3分别分发给A、B、C三个微服务,微服务通过接收子请求,反馈对应的接口数据执行结果,如R1、R2、R3,并分别反馈给请求分发模块3。请求分发模块3再将执行结果R1、R2、R3转发给聚合模块4,以使得聚合模块4根据请求聚合模式配置项对执行结果R1、R2、R3进行聚合运算,如求交集或并集等逻辑运算,生成聚合结果R。
生成聚合结果R后,聚合模块4还可以将所述聚合结果R发送至所述配置模块1,以通过配置模块1,将聚合结果R反馈给用户终端,完成接口对接。可见,本申请提供的接口数据聚合系统,可实现每当有新的底层接口或者前端有新的业务数据构造时,不需要前置服务重新对接接口,只需通过配置方式,直接完成新的接口对接,极大的减轻了前端开发与后端开发对接时的工作量。
在本申请的部分实施例中,为了接入用户终端以及传递接口数据,所述系统还包括网关设备6。网关设备(Gateway)6可以在多个网络间提供数据转换服务,从而使多个用户终端5能够接入本申请的微服务接口数据聚合系统,完成各自的接口配置。具体地,所述配置模块1可通过网关设备6连接用户终端5,以通过所述网关设备6获取所述用户终端5发送的原始请求;以及通过所述网关设备6向所述用户终端5发送聚合结果。
在本申请的部分实施例中,所述请求配置项还包括数据聚合计算公式配置项。计算公式可以由多个预先配置的运算函数模板组合而成。例如,在聚合计算公式可以为:
R=F[f(R1)+f(R2)+f(R3)+……+f(Rn)];
式中,R为聚合结果;R1、R2、R3、……、Rn分别为多个微服务反馈的执行结果;f为对执行结果实施的数据转换运算;F为针对多个执行结果执行的逻辑运算。
所述聚合模块4还被配置为根据所述数据聚合计算公式配置项将多个执行结果聚合为一个聚合结果。实际应用中,配置模块1可以在获取到原始请求后,针对原始请求,确定与多个子请求之间的映射关系。并且,在确定映射关系后,根据映射关系确定聚合计算公式,即针对原始请求进行的分解运算,与针对多个执行结果进行的聚合运算可以为互逆运算,并将确定的计算方式分别以请求映射配置项和请求聚合模式配置项的方式分别发送给请求解析模块2和聚合模块4,从而确保聚合结果与分解方式相适应,能够被用户终端5使用,完成接口配置。
在本申请的部分实施例中,如图3所示,所述请求分发模式配置项包括:有序分发和无序分发。其中,有序分发是指多个子请求之间有先后访问的顺序,一般适用于多个微服务的输出结果之间有相互影响的情况,例如,微服务B的输入中,包含微服务A的输出结果,即微服务B需要在微服务A完成输出的情况下,才能实施具体的数据计算,因此,分发给微服务A和微服务B的子请求也要有先后顺序,即先分发给微服务A,再分发给微服务B。
无序分发是指多个子请求之间没有先后方位顺序,可适用于多个微服务输出结果之间没有相互影响的情况。因此,所述配置模块1被进一步配置为:判断所述原始请求是否为无序请求。具体的判断依据可以原始请求的分解方式以及原始请求对应所要达到的功能确定。例如,原始请求中对应要实现的功能需要串行执行,则分解的多个子请求之间具有先后顺序,因此确定原始请求为有序请求。反之,如果原始请求中对应要实现的各个功能需要并行执行,则分解的多个子请求之间没有先后顺序,可确定原始请求为无序请求。
针对不同的分发方式,配置模块1可以配置不同的请求分发模式配置项。如果所述原始请求是无序请求,生成包含无序分发模式的请求分发模式配置项。如果所述原始请求是有序请求,生成包含有序分发模式的请求分发模式配置项,以及指定子请求的分发顺序。进一步地,为了执行请求的分发,所述请求分发模块3被进一步配置为:如果所述原始请求是无序请求,将多个子请求并行分发至多个微服务;如果所述原始请求是有序请求,按照所述分发顺序串行将多个子请求分发至多个微服务。
需要说明的是,在实际应用中,对于原始请求对应的功能,可能并不局限于一种执行顺序,即在原始请求对应的多个子功能下,部分子功能需要有执行的先后顺序,部分子功能不需要有执行的先后顺序。因此,本申请提供的聚合系统可以分别针对子功能对应的子请求进行不同的数据分发方式。相应的配置模块1被配置为:生成包含有序分发模式的请求分发模式配置项,以及指定部分子请求的分发顺序。同样,请求分发模块3被配置为:提取具有分发顺序的子请求,按照指定的分发顺序,将提取的子请求串行将多个子请求分发至多个微服务;以及将其余子请求并行分发至多个微服务。
在本申请的部分实施例中,如图4所示,所述配置模块1被进一步配置为:判断所述原始请求是否需要拆分。原始请求的判断依据可以根据原始请求对应的所要实现的功能和微服务的层级关系进行确定。例如,原始请求所对应要实现的功能是一个基础功能,该基础功能通过访问一个微服务即可实现,则该原始请求无需进行拆分。如果原始请求对应一个较复杂的处理程序,对应一个复杂功能。要想实现该功能,需要访问多个微服务,则原始请求需要进行拆分。
如果所述原始请求需要拆分,生成请求映射配置项。并且,将所述原始请求和所述请求映射配置项发送至所述请求解析模块2,以便按照上述请求拆解以及分发方式,对原始请求进行处理。如果所述原始请求无需拆分,则可以跳过原始请求的拆解程序,直接将所述原始请求发送至所述请求分发模块3。
相应地,如果所述原始请求无需拆分,所述请求分发模块3被进一步配置为:解析所述原始请求的目标微服务;在配置模块1将原始请求转发给请求分发模块3后,请求分发模块3可以对原始请求进行解析,确定能够实现原始请求对应功能的微服务为目标微服务,再遍历所有微服务接口,确定目标微服务对应的接口,从而将所述原始请求通过确定的接口,发送至所述目标微服务。
在本申请的部分实施例中,所述请求配置项为包含请求映射配置项、路由方式配置项、请求分发模式配置项以及请求聚合模式配置项的数据表。实际应用中,可以在一个数据表中,包含全部请求配置项。并且,所述配置模块1被进一步配置为:同时向所述请求解析模块2、请求分发模块3以及聚合模块4发送所述请求配置项。配置模块1可以将该数据表统一向其他模块进行发送,而其他模块可以根据自身所具有的功能,在数据表中查找对应配置项。
例如,配置模块1生成的数据表包括如下内容:
其中,mappings.mapping1.uri表示原始请求路径;mappings.mapping1.method表示原始请求方式;mappings.mapping1.desc表示原始请求说明;mappings.mapping1.aggregation表示请求结果聚合方式;mappings.mapping1.routes.route1.uri表示子请求路径;mappings.mapping1.routes.route1.method表示子请求方式;mappings.mapping1.routes.route1.media表示子请求提交方式;mappings.mapping1.routes.route1.desc表示子请求说明;mappings.mapping1.routes.route1.service表示子请求对应的服务名;mappings.mapping1.routes.route1.order表示子请求的执行顺序。
可见,各模块可以通过读取上述数据表,获得对应的配置项。例如,请求分发模块3可以在数据表中读取“mappings.mapping1.routes.route1.media(子请求提交方式)”,“mappings.mapping1.routes.route1.service(子请求对应的服务名)”,“mappings.mapping1.routes.route1.order(子请求的执行顺序)”对应的配置值,以进行子请求的分发。而聚合模块4可以在数据表中读取“mappings.mapping1.aggregation(请求结果聚合方式)”,以便将执行结果进行聚合。
可见,在本实施例中,可以通过在配置文件中增加配置项的方式,实现当原始请求进入所述系统后,则根据配置项自动解析和组装成前端需要的数据。该过程不需要书写多余代码,完全由配置项决定,提高接口响应速度。
由以上技术方案可知,本申请提供的微服务接口数据聚合系统,使用可配置化的模式来完成接口对接过程。整个对接过程可以通过增加配置文件的方式,自定义请求分发,自定义数据聚合。当业务需求发生变更,底层微服务接口发生变动时,不需要进行接口层面的改动,只需修改配置文件即可,既提高容错率,又节省开发成本。
基于上述微服务接口数据聚合系统,如图5所示,本申请还提供一种微服务接口数据聚合方法,包括以下步骤:
S1:获取原始请求;
S2:根据所述原始请求生成请求配置项;所述请求配置项包括请求映射配置项、路由方式配置项、请求分发模式配置项以及请求聚合模式配置项;
S3:根据所述请求映射配置项拆解所述原始请求,生成多个子请求;
S4:根据所述路由方式配置项和所述请求分发模式配置项,将多个所述子请求分发至多个微服务;
S5:接收各微服务返回的执行结果;
S6:根据所述请求聚合模式配置项将多个执行结果进行聚合计算,生成聚合结果。
由以上步骤可知,本申请在获取原始请求后,可先根据原始请求生成请求配置项,以根据请求映射配置项拆解原始请求,生成多个子请求,再根据路由方式配置项和请求分发模式配置项,将多个子请求分发至多个微服务并分别接收各微服务返回的执行结果,最后根据请求聚合模式配置项将多个执行结果进行聚合计算,生成聚合结果,从而向发送原始请求的用户终端反馈接口配置数据,完成接口配置。
进一步地,在获取原始请求后,如图6所示,所述方法还包括:
S101:判断所述原始请求是否为无序请求;
S102:如果所述原始请求是无序请求,生成包含无序分发模式的所述请求分发模式配置项;
S103:将多个子请求并行分发至多个微服务;
S104:如果所述原始请求是有序请求,生成包含有序分发模式的所述请求分发模式配置项,以及指定子请求的分发顺序;
S105:按照所述分发顺序串行将多个子请求分发至多个微服务。
由以上步骤可知,本申请可以对原始请求是否为无序请求进行判断,从而确定各子请求的分发方式。如果原始请求是无序请求,将多个子请求并行分发至多个微服务,以1.并发获取底层数据,提高接口响应速度;如果原始请求是有序请求,按照分发顺序串行将多个子请求分发至多个微服务,以保证原始请求的接口配置准确性。
进一步地,如图7所示,在获取原始请求后,所述方法还包括:
S111:判断所述原始请求是否需要拆分;
S112:如果所述原始请求需要拆分,生成请求映射配置项;
S113:将所述原始请求和所述请求映射配置项发送至所述请求解析模块;
S114:如果所述原始请求无需拆分,将所述原始请求发送至所述请求分发模块。
由以上步骤可知,本申请在获取原始请求后可以对原始请求是否需要拆分进行判断,以根据原始请求是否需要拆分,确定相应的配置文件传输方式。如果原始请求需要拆分,则生成请求映射配置项,并且将原始请求和请求映射配置项发送至请求解析模块,将原始请求拆分成多个子请求。如果原始请求无需拆分,将原始请求直接发送至请求分发模块,从而提高请求处理效率。
进一步地,如图8所示,如果所述原始请求无需拆分,所述方法还包括:
S1141:解析所述原始请求的目标微服务;
S1142:遍历微服务接口,确定目标微服务对应的接口;
S1143:将所述原始请求通过确定的接口,发送至所述目标微服务。
由以上技术方案可知,本申请提供一种微服务接口数据聚合系统及方法,所述系统包括:配置模块、请求解析模块、请求分发模块以及聚合模块。其中,配置模块被在获取原始请求后,根据所述原始请求生成请求配置项,以使请求解析模块根据请求配置项中的请求映射配置项拆解所述原始请求,生成多个子请求,以及通过请求分发模块将多个所述子请求分发至多个微服务,并接收各微服务返回的执行结果,以使聚合模块将多个执行结果进行聚合计算,生成聚合结果。所述系统可以并发获取底层数据,提高接口响应速度,并且支持自定义数据聚合过程,使得接口的变更和维护更加高效。
本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。

Claims (6)

1.一种微服务接口数据聚合系统,其特征在于,包括:配置模块、请求解析模块、请求分发模块以及聚合模块;
其中,所述配置模块被配置为:获取原始请求,以及根据所述原始请求生成请求配置项;所述请求配置项包括请求映射配置项、路由方式配置项、请求分发模式配置项、请求聚合模式配置项以及数据聚合计算公式配置项;所述配置模块还被配置为:在获取到原始请求后,针对原始请求,确定与多个子请求之间的映射关系;在确定映射关系后,根据映射关系确定聚合计算公式,将确定的计算方式分别以请求映射配置项和请求聚合模式配置项的方式分别发送给请求解析模块和聚合模块,以确保聚合结果与分解方式相适应能够被用户终端使用;
所述请求解析模块被配置为:根据所述请求映射配置项拆解所述原始请求,生成多个子请求;
所述请求分发模块被配置为:根据所述路由方式配置项和所述请求分发模式配置项将多个所述子请求分发至多个微服务;以及,接收各微服务返回的执行结果,并将所述执行结果转发至所述聚合模块;
所述聚合模块被配置为:根据所述请求聚合模式配置项将多个执行结果进行聚合计算,生成聚合结果;以及,将所述聚合结果发送至所述配置模块;所述聚合模块还被配置为,根据所述数据聚合计算公式配置项将多个执行结果聚合为一个聚合结果;
所述请求分发模式配置项包括:有序分发和无序分发;
所述配置模块被进一步配置为:判断所述原始请求是否为无序请求;
如果所述原始请求是无序请求,生成包含无序分发模式的请求分发模式配置项;
如果所述原始请求是有序请求,生成包含有序分发模式的请求分发模式配置项,以及指定子请求的分发顺序;
如果所述原始请求是无序请求,将多个子请求并行分发至多个微服务;
如果所述原始请求是有序请求,按照所述分发顺序串行将多个子请求分发至多个微服务。
2.根据权利要求1所述的微服务接口数据聚合系统,其特征在于,所述配置模块通过网关设备连接用户终端,以通过所述网关设备获取所述用户终端发送的原始请求;以及通过所述网关设备向所述用户终端发送聚合结果。
3.根据权利要求1所述的微服务接口数据聚合系统,其特征在于,所述配置模块被进一步配置为:
判断所述原始请求是否需要拆分;
如果所述原始请求需要拆分,生成请求映射配置项;
将所述原始请求和所述请求映射配置项发送至所述请求解析模块;
如果所述原始请求无需拆分,将所述原始请求发送至所述请求分发模块。
4.根据权利要求3所述的微服务接口数据聚合系统,其特征在于,如果所述原始请求无需拆分,所述请求分发模块被进一步配置为:
解析所述原始请求的目标微服务;
遍历微服务接口,确定目标微服务对应的接口;
将所述原始请求通过确定的接口,发送至所述目标微服务。
5.根据权利要求1所述的微服务接口数据聚合系统,其特征在于,所述请求配置项为包含请求映射配置项、路由方式配置项、请求分发模式配置项以及请求聚合模式配置项的数据表;所述配置模块被进一步配置为:
同时向所述请求解析模块、请求分发模块以及聚合模块发送所述请求配置项。
6.一种微服务接口数据聚合方法,其特征在于,包括:
获取原始请求;
在获取到原始请求后,针对原始请求,确定与多个子请求之间的映射关系;
在确定映射关系后,根据映射关系确定聚合计算公式,生成请求配置项,所述请求配置项包括请求映射配置项、路由方式配置项、请求分发模式配置项、请求聚合模式配置项以及数据聚合计算公式配置项;
根据所述请求映射配置项拆解所述原始请求,生成多个子请求;
根据所述路由方式配置项和所述请求分发模式配置项,将多个所述子请求分发至多个微服务;
接收各微服务返回的执行结果;
根据所述请求聚合模式配置项将多个执行结果进行聚合计算,将多个执行结果聚合为一个聚合结果;
在获取原始请求后,所述方法还包括:
判断所述原始请求是否为无序请求;
如果所述原始请求是无序请求,生成包含无序分发模式的所述请求分发模式配置项;
将多个子请求并行分发至多个微服务;
如果所述原始请求是有序请求,生成包含有序分发模式的所述请求分发模式配置项,以及指定子请求的分发顺序;
按照所述分发顺序串行将多个子请求分发至多个微服务。
CN202010009836.3A 2020-01-06 2020-01-06 微服务接口数据聚合系统及方法 Active CN111198727B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010009836.3A CN111198727B (zh) 2020-01-06 2020-01-06 微服务接口数据聚合系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010009836.3A CN111198727B (zh) 2020-01-06 2020-01-06 微服务接口数据聚合系统及方法

Publications (2)

Publication Number Publication Date
CN111198727A CN111198727A (zh) 2020-05-26
CN111198727B true CN111198727B (zh) 2023-12-29

Family

ID=70746781

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010009836.3A Active CN111198727B (zh) 2020-01-06 2020-01-06 微服务接口数据聚合系统及方法

Country Status (1)

Country Link
CN (1) CN111198727B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111741079A (zh) * 2020-06-01 2020-10-02 广西电网有限责任公司电力科学研究院 一种基于微服务架构的接口处理方法及系统
CN112116326A (zh) * 2020-09-21 2020-12-22 中国建设银行股份有限公司 一种基于共享平台的公积金业务处理方法和系统
CN116010126B (zh) * 2023-02-09 2023-06-27 中国证券登记结算有限责任公司 一种服务聚合方法、装置及系统

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776929A (zh) * 2016-11-30 2017-05-31 北京锐安科技有限公司 一种信息检索的方法及装置
CN106878393A (zh) * 2017-01-16 2017-06-20 深圳市商沃科技发展有限公司 一种基于融合微服务架构的系统
CN107872334A (zh) * 2016-09-23 2018-04-03 中兴通讯股份有限公司 一种微服务架构系统中灰度升级的方法及装置
CN107979635A (zh) * 2017-10-24 2018-05-01 广东康美通信息服务有限公司 基于微服务的系统、方法及存储介质
US10013550B1 (en) * 2016-12-30 2018-07-03 ShieldX Networks, Inc. Systems and methods for adding microservices into existing system environments
CN108446111A (zh) * 2018-03-26 2018-08-24 国家电网公司客户服务中心 一种基于Spring cloud的微服务构建方法
CN109038832A (zh) * 2018-09-19 2018-12-18 上海许继电气有限公司 基于微服务架构的变电站辅助监控系统
CN109582471A (zh) * 2017-09-29 2019-04-05 西门子公司 信息处理方法、装置和系统
CN110008045A (zh) * 2019-04-12 2019-07-12 深圳乐信软件技术有限公司 微服务的聚合方法、装置、设备及存储介质
CN110086853A (zh) * 2019-03-28 2019-08-02 浙江明度智控科技有限公司 一种工业物联网信息可视化方法、服务器和存储介质
CN110134374A (zh) * 2019-05-10 2019-08-16 南京绿新能源研究院有限公司 基于Spring cloud微服务架构云化SCADA系统的方法
CN110149364A (zh) * 2019-04-15 2019-08-20 厦门市美亚柏科信息股份有限公司 基于数据服务平台提供微服务的方法、装置、存储介质
CN110543296A (zh) * 2019-08-26 2019-12-06 成都市知用科技有限公司 一种智慧校园微服务平台架构体系
CN110557284A (zh) * 2019-08-30 2019-12-10 贝壳技术有限公司 基于客户端网关的数据聚合方法及装置
CN110621040A (zh) * 2019-10-24 2019-12-27 北京大学 一种实现多路并行传输通信的方法和系统
CN110635988A (zh) * 2019-10-24 2019-12-31 北京大学 一种用于多路径传输的数据转发方法及设备
CN110636108A (zh) * 2019-08-16 2019-12-31 南方电网科学研究院有限责任公司 一种用于电力计量的微服务架构及其实现方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170364434A1 (en) * 2016-06-15 2017-12-21 International Business Machines Corporation Splitting and merging microservices
US10505733B2 (en) * 2017-09-25 2019-12-10 Citrix Systems, Inc. Generating and managing a composite identity token for multi-service use

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107872334A (zh) * 2016-09-23 2018-04-03 中兴通讯股份有限公司 一种微服务架构系统中灰度升级的方法及装置
CN106776929A (zh) * 2016-11-30 2017-05-31 北京锐安科技有限公司 一种信息检索的方法及装置
US10013550B1 (en) * 2016-12-30 2018-07-03 ShieldX Networks, Inc. Systems and methods for adding microservices into existing system environments
CN106878393A (zh) * 2017-01-16 2017-06-20 深圳市商沃科技发展有限公司 一种基于融合微服务架构的系统
CN109582471A (zh) * 2017-09-29 2019-04-05 西门子公司 信息处理方法、装置和系统
CN107979635A (zh) * 2017-10-24 2018-05-01 广东康美通信息服务有限公司 基于微服务的系统、方法及存储介质
CN108446111A (zh) * 2018-03-26 2018-08-24 国家电网公司客户服务中心 一种基于Spring cloud的微服务构建方法
CN109038832A (zh) * 2018-09-19 2018-12-18 上海许继电气有限公司 基于微服务架构的变电站辅助监控系统
CN110086853A (zh) * 2019-03-28 2019-08-02 浙江明度智控科技有限公司 一种工业物联网信息可视化方法、服务器和存储介质
CN110008045A (zh) * 2019-04-12 2019-07-12 深圳乐信软件技术有限公司 微服务的聚合方法、装置、设备及存储介质
CN110149364A (zh) * 2019-04-15 2019-08-20 厦门市美亚柏科信息股份有限公司 基于数据服务平台提供微服务的方法、装置、存储介质
CN110134374A (zh) * 2019-05-10 2019-08-16 南京绿新能源研究院有限公司 基于Spring cloud微服务架构云化SCADA系统的方法
CN110636108A (zh) * 2019-08-16 2019-12-31 南方电网科学研究院有限责任公司 一种用于电力计量的微服务架构及其实现方法
CN110543296A (zh) * 2019-08-26 2019-12-06 成都市知用科技有限公司 一种智慧校园微服务平台架构体系
CN110557284A (zh) * 2019-08-30 2019-12-10 贝壳技术有限公司 基于客户端网关的数据聚合方法及装置
CN110621040A (zh) * 2019-10-24 2019-12-27 北京大学 一种实现多路并行传输通信的方法和系统
CN110635988A (zh) * 2019-10-24 2019-12-31 北京大学 一种用于多路径传输的数据转发方法及设备

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
图书馆微服务信息生态链动力机制及优化策略研究;王宁;;情报杂志(第09期);第202-208页 *
基于Spring Cloud和Docker的分布式微服务架构设计;黄强文;曾丹;;微型电脑应用(第06期);第102-105页 *
基于微服务架构的基础设施设计;蒋勇;;软件(第05期);第93-97页 *
微服务在大型设备监控管理系统中的应用探究;熊肖磊;韩雄飞;赵炯;周奇才;;现代机械(第06期);第91-96页 *

Also Published As

Publication number Publication date
CN111198727A (zh) 2020-05-26

Similar Documents

Publication Publication Date Title
CN111198727B (zh) 微服务接口数据聚合系统及方法
US20220138376A1 (en) Digital twin modeling and simulation method, device, and system
CN101689201B (zh) 联合搜索
CN106487560A (zh) 一种服务器配置信息的采集方法、装置及系统
CN111338770A (zh) 一种任务调度的方法、服务器和计算机可读存储介质
CN107479984B (zh) 基于消息的分布式空间数据处理系统
CN103927331A (zh) 数据查询方法、装置及系统
CN2812197Y (zh) 信号路由装置
CN109542781A (zh) 区块链共识算法测试方法、装置、计算装置和存储介质
CN106161520A (zh) 大数据应用平台及基于其的交互方法
CN105245588A (zh) 一种web业务端口分离处理的方法
CN109885390A (zh) 分子对接云计算流程控制方法
CN113760987A (zh) 数据处理方法和数据处理平台
CN113760242A (zh) 一种数据处理方法、装置、服务器和介质
CN112597199A (zh) 异构多数据源适配方法及装置
CN105144107A (zh) 用于运行可执行代码的方法、处理模块及系统
CN112835571B (zh) 一种基于Laravel框架的RESTful API代码的自动生成方法
CN107193654B (zh) 分布式系统的资源操作方法及装置、分布式系统
CN110471968A (zh) Etl任务的发布方法、装置、设备及存储介质
CN112311679B (zh) 状态检测方法、装置、电子设备及可读存储介质
CN104504114A (zh) 基于多哈希表的关系操作优化方法、装置和系统
KR102302302B1 (ko) 초소형 Disposable IoT 서비스 인프라
CN113612838A (zh) 搅拌站的控制方法、装置、搅拌站、电子设备及介质
US20190379585A1 (en) Aggregation platform, requirement owner, and methods thereof
WO2010109500A1 (en) System for controlling geographic information systems (gis), and relevant method

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
CB02 Change of applicant information

Address after: Floor 1, No.81 Xinle Road, high tech Zone, Chengdu, Sichuan 610041

Applicant after: Chengdu Cooper Innovation Technology Co.,Ltd.

Address before: 610041 floor 1, No. 81, Xinle Road, Chengdu hi tech Zone, Chengdu, Sichuan

Applicant before: Chengdu Cooper blockchain Technology Co.,Ltd.

CB02 Change of applicant information
TA01 Transfer of patent application right

Effective date of registration: 20230907

Address after: No. 1, Jinyun East Third Lane, High tech Zone, Chengdu, Sichuan, 610096

Applicant after: Sichuan Cooper Technology Group Co.,Ltd.

Address before: Floor 1, No.81 Xinle Road, high tech Zone, Chengdu, Sichuan 610041

Applicant before: Chengdu Cooper Innovation Technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant