CN111638972B - 基于微服务的请求响应方法、系统、设备及存储介质 - Google Patents
基于微服务的请求响应方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN111638972B CN111638972B CN202010378809.3A CN202010378809A CN111638972B CN 111638972 B CN111638972 B CN 111638972B CN 202010378809 A CN202010378809 A CN 202010378809A CN 111638972 B CN111638972 B CN 111638972B
- Authority
- CN
- China
- Prior art keywords
- service
- request
- micro
- service aggregation
- aggregation module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例涉及微服务架构技术领域,公开了基于微服务的请求响应方法、系统、设备及存储介质。本发明实施例先接收数据请求;根据所述数据请求的请求类型确定处理所述数据请求的服务聚合模型;基于所述服务聚合模型的模型结构处理与所述数据请求对应的微服务请求,以响应所述数据请求。本发明实施例将通过服务聚合模型来处理拆分后的微服务请求,进而完成了对于原有数据请求的处理操作,可见,本发明实施例给出了一类较好的针对请求处理场景的微服务架构落地方案,解决了如何在微服务架构下进行请求处理的技术问题。此外,本发明实施例还提供了基于服务聚合模型的建模、编排及扩展等操作。
Description
技术领域
本发明涉及微服务架构技术领域,尤其涉及基于微服务的请求响应方法、系统、设备及存储介质。
背景技术
就常规的请求处理方式而言,任一终端发起的一个终端请求,将直接处理该终端请求,以完成一次完整的请求处理进程。
随着微服务架构的兴起,业务模型变得高内聚、低耦合,业务之间的边界也变得清晰,每个服务的职责变得单一明确。
鉴于请求处理进程是细颗粒的较为底层的操作类型,目前,并没有一类较好的针对请求处理场景的微服务架构落地方案。
发明内容
为了解决如何在微服务架构下进行请求处理的技术问题,本发明实施例提供基于微服务的请求响应方法、系统、设备及存储介质。
第一方面,本发明实施例提供一种基于微服务的请求响应方法,包括:
接收数据请求;
根据所述数据请求的请求类型确定处理所述数据请求的服务聚合模型;
基于所述服务聚合模型的模型结构处理与所述数据请求对应的微服务请求,以响应所述数据请求。
优选地,所述接收数据请求之前,所述基于微服务的请求响应方法还包括:
基于与数据请求的请求类型对应的预设编排规则组合服务聚合模块,以构建由所述服务聚合模块组成的服务聚合模型。
优选地,所述接收数据请求之前,所述基于微服务的请求响应方法还包括:
获取待替换微服务请求;
将服务聚合模型中的目标服务聚合模块对应的目标微服务请求替换为所述待替换微服务请求,以得到新的服务聚合模型。
优选地,所述基于所述服务聚合模型的模型结构处理与所述数据请求对应的微服务请求,以响应所述数据请求,具体包括:
确定所述服务聚合模型中的初始服务聚合模块;
在所述初始服务聚合模块中根据所述数据请求发起与所述初始服务聚合模块对应的微服务请求;
确定与所述初始服务聚合模块连接的下一服务聚合模块;
在所述下一服务聚合模块中发起与所述下一服务聚合模块对应的微服务请求,以响应所述数据请求。
优选地,所述服务聚合模型中包括与串行类型对应的第一服务聚合模块;
相应地,所述基于所述服务聚合模型的模型结构处理与所述数据请求对应的微服务请求,以响应所述数据请求,具体包括:
在所述第一服务聚合模块中根据所述数据请求确定用户标识,并通过所述用户标识发起第一串行微服务请求,以响应所述数据请求。
优选地,所述服务聚合模型中包括与串行类型对应的第二服务聚合模块;
相应地,所述基于所述服务聚合模型的模型结构处理与所述数据请求对应的微服务请求,以响应所述数据请求,具体包括:
在所述第二服务聚合模块中根据所述数据请求确定主题标识,并通过所述主题标识发起第二串行微服务请求,以获得主题展开信息;
在所述第二服务聚合模块中通过所述主题展开信息发起第三串行微服务请求,以保存所述主题展开信息至预设存储区域;
在所述第二服务聚合模块中发起第四串行微服务请求,以获得回复记录;
其中,所述第二服务聚合模块中的所述第二串行微服务请求、所述第三串行微服务请求及所述第四串行微服务请求顺序连接。
优选地,所述服务聚合模型中包括与条件类型对应的第三服务聚合模块;
相应地,所述基于所述服务聚合模型的模型结构处理与所述数据请求对应的微服务请求,以响应所述数据请求,具体包括:
在所述第三服务聚合模块中根据所述数据请求确定对应的当前条件,并发起与所述当前条件对应的第五串行微服务请求。
第二方面,本发明实施例提供一种基于微服务的请求响应系统,包括:
请求接收模块,用于接收数据请求;
模型确定模块,用于根据所述数据请求的请求类型确定处理所述数据请求的服务聚合模型;
请求响应模块,用于基于所述服务聚合模型的模型结构处理与所述数据请求对应的微服务请求,以响应所述数据请求。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明第一方面提供的一种基于微服务的请求响应方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明第一方面提供的一种基于微服务的请求响应方法的步骤。
本发明实施例提供的基于微服务的请求响应方法、系统、设备及存储介质,先接收数据请求;根据所述数据请求的请求类型确定处理所述数据请求的服务聚合模型;基于所述服务聚合模型的模型结构处理与所述数据请求对应的微服务请求,以响应所述数据请求。本发明实施例将通过服务聚合模型来处理拆分后的微服务请求,进而完成了对于原有数据请求的处理操作,可见,本发明实施例给出了一类较好的针对请求处理场景的微服务架构落地方案,解决了如何在微服务架构下进行请求处理的技术问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于微服务的请求响应方法的流程图;
图2为本发明又一实施例提供的一种基于微服务的请求响应方法的流程图;
图3为本发明再一实施例提供的一种基于微服务的请求响应方法的流程图;
图4a为本发明再一实施例提供的并行类型的服务聚合模块示例图;
图4b为本发明再一实施例提供的串行类型的服务聚合模块示例图;
图4c为本发明再一实施例提供的条件类型的服务聚合模块示例图;
图4d为本发明再一实施例提供的循环类型的服务聚合模块示例图;
图5为本发明另一实施例提供的一种基于微服务的请求响应方法的流程图;
图6为本发明实施例提供的一种基于微服务的请求响应系统的结构示意图;
图7为本发明实施例提供的一种电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种基于微服务的请求响应方法的流程图,如图1所示,该方法包括:
S1,接收数据请求。
可以理解的是,本发明实施例将在微服务框架下对请求处理操作进行重新解构,并非直接处理该终端请求来完成一次完整的请求处理操作。
具体地,一次终端的请求背后将对应着多次微服务请求,通过处理拆分后的多个微服务请求来完成该终端请求的处理操作。
其中,终端请求即为上述数据请求,一个数据请求将对应着预设数目的微服务请求,预设数目可以是不为1的正整数。
S2,根据所述数据请求的请求类型确定处理所述数据请求的服务聚合模型。
应当理解的是,不同类型的数据请求将存在着对应的不同类型的服务聚合模型,服务聚合模型将用来处理该数据请求,具体地,将用来处理对应的拆分后的多个微服务请求。
其中,服务聚合模型描述了某类业务场景下的一次完整的服务聚合行为。
S3,基于所述服务聚合模型的模型结构处理与所述数据请求对应的微服务请求,以响应所述数据请求。
可见,本发明实施例将以请求响应作为一类实际场景来落地微服务请求响应框架,该请求响应场景主要由数据请求、数据合并和反馈所需数据等环节构成;同时,请求响应这一场景本就为较为底层且较为细颗粒的实际场景,可见,本场景具有一定的普适性。
本发明实施例提供的基于微服务的请求响应方法,先接收数据请求;根据所述数据请求的请求类型确定处理所述数据请求的服务聚合模型;基于所述服务聚合模型的模型结构处理与所述数据请求对应的微服务请求,以响应所述数据请求。本发明实施例将通过服务聚合模型来处理拆分后的微服务请求,进而完成了对于原有数据请求的处理操作,可见,本发明实施例给出了一类较好的针对请求处理场景的微服务架构落地方案,解决了如何在微服务架构下进行请求处理的技术问题。
图2为本发明又一实施例提供的一种基于微服务的请求响应方法的流程图,本发明又一实施例基于上述图1所示的实施例。
本实施例中,所述S1之前,所述基于微服务的请求响应方法还包括:
S01,基于与数据请求的请求类型对应的预设编排规则组合服务聚合模块,以构建由所述服务聚合模块组成的服务聚合模型。
可以理解的是,图1所示的实施例主要体现了请求响应的实际响应环节,本发明实施例将给出一类针对模型构建环节的实现方式。
具体地,服务聚合模型(model)实际上是由更细颗粒的服务聚合模块(module)组成而成。其中,服务聚合模块将对聚合逻辑进行抽象和定义,存在着多种不同类型的服务聚合模块。
同时,服务聚合模块(module)又是以服务聚合元模型(meta-module)为基础获得的,简而言之,服务聚合模块是服务聚合元模型的一种具体化的实例,服务聚合元模型则是定义和描述。
比如,服务聚合模块存在着串行类型、并行类型、条件类型及循环类型等。
在具体实现中,若以数据请求的请求类型A为例,可基于请求类型A所描述的业务逻辑进行编排,比如,编排规则可为“先串行类型、再并行类型、再串行类型”。此处对于预设编排规则的举例仅作示例性解释,并不作限制。
可见,本发明实施例不仅可定义不同类型的服务聚合元模型,也可根据实际业务并基于元模型来编排模型,以构建出服务聚合模型。
本发明实施例提供的基于微服务的请求响应方法,可灵活定制终端请求即数据请求,以满足各类不同需求的业务需要。
在上述实施例的基础上,优选地,所述接收数据请求之前,所述基于微服务的请求响应方法还包括:
获取待替换微服务请求;
将服务聚合模型中的目标服务聚合模块对应的目标微服务请求替换为所述待替换微服务请求,以得到新的服务聚合模型。
可以理解的是,本发明实施例提供的微服务框架落地方案,还具备着可扩展的特性,这主要因为本发明实施例的实现方式不是粗颗粒度的而是细化至了服务聚合模块这一维度,也可称为细化至了服务聚合元模型这一维度,所以,使得与数据请求对应的服务聚合模型具备可扩展特性。
比如,若原本的服务聚合模型由10个服务聚合模块构成,其中的第6个服务聚合模块为串行类型,可将该串行类型中的第3个微服务请求由原本的“获得最近10条回复的微服务请求”替换成“获取相册的微服务请求”。此仅为原理解释性示例,不作限制。
其中,待替换微服务请求为“获取相册的微服务请求”,目标微服务请求为“获得最近10条回复的微服务请求”。
在获得新的服务聚合模型后,后续将基于扩展(Extension)后的新的服务聚合模型来响应原本的数据请求。
此外,从使用者角度而言,使用者可调用服务聚合接口来对服务聚合模型进行扩展。其中,此处的使用者一般为实施顾问或合作伙伴的开发者。
此外,若目标服务聚合模块是由与并行类型对应的服务聚合元模型获得的,其中,与并行类型对应的服务聚合元模型可记为Mall={S1,S2,...,Sn},n为正整数,描述了一组并行微服务请求。
至于目标服务聚合模块则对应于具体的请求,比如,描述了2个并行微服务请求。
本发明实施例提供的基于微服务的请求响应方法,由于细颗粒化到了服务聚合模块这一维度,所以,使得与数据请求对应的服务聚合模型具备可扩展特性,从而可根据业务进行扩展,以满足不同的需求。同时,该类方式建模和编排出的服务聚合模型在各种类型的电子设备中都可以使用。
图3为本发明再一实施例提供的一种基于微服务的请求响应方法的流程图,本发明再一实施例基于上述图1所示的实施例。
本实施例中,所述S3,具体包括:
S31,确定所述服务聚合模型中的初始服务聚合模块。
可以理解的是,鉴于服务聚合模型为多个不同类型的服务聚合模块连接形成的整体模型,当然,也可为同种类型的服务聚合模块连接形成的整体模型,此处不作限制。
具体地,服务聚合模型中的第1个出现的服务聚合模块可记为初始服务聚合模块。
S32,在所述初始服务聚合模块中根据所述数据请求发起与所述初始服务聚合模块对应的微服务请求。
接着,初始服务聚合模块中记录着多个微服务请求以及微服务请求的请求执行次序,将依据该请求执行次序一一发起微服务请求。
S33,确定与所述初始服务聚合模块连接的下一服务聚合模块。
S34,在所述下一服务聚合模块中发起与所述下一服务聚合模块对应的微服务请求,以响应所述数据请求。
接着,在执行完初始服务聚合模块中记录着的全部微服务请求后,转入第2个出现的服务聚合模块,并执行第2个出现的服务聚合模块中记录着的全部微服务请求,再转入第3个出现的服务聚合模块,以此类推,直至执行完服务聚合模型中的全部服务聚合模块,从而完成了对于原有数据请求的响应行为。
其中,服务聚合模型中的多个服务聚合模块可为不同类型也可为同种类型,但多为不同类型的组成。
此外,就服务聚合模型对应的服务聚合操作而言,服务聚合操作是指聚合、裁剪和适配多个单一职责的微服务接口,以返回数据请求所请求的数据。
可见,服务聚合模型对应的服务聚合接口,可解析服务聚合模型并根据逻辑调用各个微服务接口,以返回聚合后的请求数据。
其中,微服务接口对应于微服务请求。
进一步地,若对微服务调用逻辑进行建模,可将服务聚合模块对应的服务聚合元模型分成四类,其中,服务聚合元模型记作M(meta-module),M∈{Mall,Mpipe,Mcondition,Mloop},分别表征并行类型、串行类型、条件类型及循环类型。
自然,服务聚合模块也可对应地分为四类,分别表征并行类型、串行类型、条件类型及循环类型。
其一,至于并行类型的服务聚合元模型Mall而言,数据请求的请求类型为并行请求,可记作Mall={S1,S2,...,Sn},n为正整数,其中,S(step)为某一个单独的微服务请求,Start表示模型启动,End表示模型结束。
在并行请求开始时,同时发送所有的微服务请求S1,S2,...,Sn,当所有请求成功或失败结束后,Mall结束。
其中,并行类型的服务聚合元模型可参见图4a。
可以理解的是,若服务聚合模型中包括与并行类型对应的服务聚合模块;
相应地,所述基于所述服务聚合模型的模型结构处理与所述数据请求对应的微服务请求,以响应所述数据请求,具体包括:
在与并行类型对应的服务聚合模块中根据所述数据请求同步发起与并行类型对应的服务聚合模块对应的全部微服务请求。
其二,至于串行类型的服务聚合元模型Mpipe而言,数据请求的请求类型为串行请求,可记作Mpipe={S1,S2,...,Sn}。
在串行请求开始时,按照顺序依次发送微服务请求S1,S2,...,Sn,当Sn-1成功或失败时,请求Sn。当请求Sn结束后,Mpipe结束。
其中,串行类型的服务聚合元模型可参见图4b。
可以理解的是,若服务聚合模型中还包括与串行类型对应的服务聚合模块;
相应地,所述基于所述服务聚合模型的模型结构处理与所述数据请求对应的微服务请求,以响应所述数据请求,具体包括:
在与串行类型对应的服务聚合模块中根据所述数据请求在顺序下逐一发起与串行类型对应的服务聚合模块对应的微服务请求。
其三,至于条件类型的服务聚合元模型Mcondition而言,数据请求的请求类型为条件请求,可记作Mcondition={C1,C2,...,Cn,R1,R2,...,Rn,S1,S2,...,Sn}。其中,C(condition)表示一组逻辑规则,R(rule)表示一组由逻辑规则C组合而成的判断条件,如果逻辑规则R的结果为真,调用某一个对应的微服务请求S。
其中,条件类型的服务聚合元模型可参见图4c。
其四,至于循环类型的服务聚合元模型Mloop而言,数据请求的请求类型为循环请求,可记作Mloop={R,C1,C2,...,Cn,S}。判断条件R由一组逻辑规则C组成,当满足R时即true,循环发送微服务请求S,直到不满足R即false为止。
其中,循环类型的服务聚合元模型可参见图4d。
当然,除了上述四种基础逻辑外,也可以根据需求抽象其他的服务聚合元模型,比如,filter模型,可过滤一组元数据请求S,返回满足条件的S;map模型,可把一组数据映射成一组元数据请求S;race模型,可发送一组元数据请求S,返回最快的结果等等。
更进一步地,就上述的扩展场景而言,其一,扩展后的并行请求可记作Mall’={S1,S2,...,Sn,S1’,S2’,...,Sn’},其中S1’,S2’,...,Sn’为使用者根据业务需求添加的元数据接口,即与微服务请求对应的微服务接口。
在并行请求开始时,同时发送所有的微服务请求S1,S2,...,Sn,S1’,S2’,...,Sn’,当所有请求成功或失败结束后,Mall’结束。
其二,扩展后的串行请求可记作Mpipe’={S1,S2,...,Sn,S1’,S2’,...,Sn’},其中,S1’,S2’,...,Sn’为使用者根据业务需求添加的元数据接口,使用者可以指定添加元数据接口S’的顺序。
当串行请求开始时,按照顺序依次发送微服务请求,当Sn’请求结束后,Mpipe’结束。
其三,扩展后的条件请求可记作Mcondition’={C1,C2,...,Cn,C1’,C2’,...,Cn’,R1,R2,...,Rn,R1’,R2’,...,Rn’,S1,S2,...,Sn,S1’,S2’,...,Sn’},其中,C’为一组使用者添加的逻辑规则,R’为一组由使用者添加的判断条件,R’可能同时使用到了C和C’。如果规则R或R’的结果为真,调用某一个微服务请求S或S’。
其四,扩展后的循环请求记做Mloop’={R|R’,C1,C2,...,Cn,C1’,C2’,...,Cn’,S|S’}。其中,C’为一组使用者添加的逻辑规则;R’为使用者提供的一个判断条件,可以替换原有的R;S’为使用者提供的一个微服务请求,可以替换原有的S。
在上述实施例的基础上,优选地,所述服务聚合模型中包括与串行类型对应的第一服务聚合模块;
相应地,所述基于所述服务聚合模型的模型结构处理与所述数据请求对应的微服务请求,以响应所述数据请求,具体包括:
在所述第一服务聚合模块中根据所述数据请求确定用户标识,并通过所述用户标识发起第一串行微服务请求,以响应所述数据请求。
其中,若服务聚合模型中包含着第一服务聚合模块,至于第一服务聚合模块在服务聚合模型中所处的位置此处不作限制,可为第一个,也可为任何一个。
可以理解的是,此处可以串行类型的第一服务聚合模块为例进行解释。
比如,可通过用户标识发起第一串行微服务请求,以获得用户主题,进而响应数据请求。
更具体地,可先根据数据请求确定用户标识(ID,Identity document)即用户ID,再基于用户ID请求到该用户的用户主题,还可请求到回复信息。
比如,实施场景以贴吧为例,用户主题为贴吧中的一个主题帖,回复信息则为与该主题帖对应的回帖。
图5为本发明另一实施例提供的一种基于微服务的请求响应方法的流程图,本发明另一实施例基于上述图1所示的实施例。
本实施例中,所述服务聚合模型中包括与串行类型对应的第二服务聚合模块。
其中,若服务聚合模型中包含着第二服务聚合模块,至于第二服务聚合模块在服务聚合模型中所处的位置此处不作限制,可为第一个,也可为任何一个。
相应地,所述S3,具体包括:
S35,在所述第二服务聚合模块中根据所述数据请求确定主题标识,并通过所述主题标识发起第二串行微服务请求,以获得主题展开信息。
在具体实现中,此处以串行类型的第二服务聚合模块为例进行解释。
例如,可先获取主题标识,主题标识为最新主题的ID,接着,获取该主题标识对应着的主题展开信息,该主题展开信息实际上是该主题标识对应主题下的详细信息。
S36,在所述第二服务聚合模块中通过所述主题展开信息发起第三串行微服务请求,以保存所述主题展开信息至预设存储区域。
接着,将该主题展开信息存入预设存储区域postData中。
S37,在所述第二服务聚合模块中发起第四串行微服务请求,以获得回复记录。
其中,所述第二服务聚合模块中的所述第二串行微服务请求、所述第三串行微服务请求及所述第四串行微服务请求顺序连接。
然后,请求时间最近的10条回复记录。
可见,因为本发明实施例描述的是串行类型对应的服务聚合模型,所以,第二串行微服务请求、第三串行微服务请求与第四串行微服务请求是顺序连接的,将一个接一个地依次正向执行。
其中,主题展开信息可理解为一个可累计回帖的网络主题帖的全部内容,回复记录则为其中的回帖记录。
在上述实施例的基础上,优选地,所述服务聚合模型中包括与条件类型对应的第三服务聚合模块;
相应地,所述基于所述服务聚合模型的模型结构处理与所述数据请求对应的微服务请求,以响应所述数据请求,具体包括:
在所述第三服务聚合模块中根据所述数据请求确定对应的当前条件,并发起与所述当前条件对应的第五串行微服务请求。
其中,若服务聚合模型中包含着第三服务聚合模块,至于第三服务聚合模块在服务聚合模型中所处的位置此处不作限制,可为第一个,也可为任何一个。
在具体实现中,此处以条件类型的第三服务聚合模块为例进行解释。
例如,当前条件可为判断成功或判断失败,判断成功可对应着发起第五串行微服务请求;判断失败可对应着发起别的请求,或者,不发起。此处仅作示例性解释,不作限制。
更具体地,比如,当前条件为“没有报错信息且获取到用户信息”,若满足当前条件,则发起第五串行微服务请求“获取用户主题和回复信息”。
此外,明显地,无论前端、中间层和后端,通过服务聚合模块解析服务聚合模型,都可以使用本发明实施例描述的服务聚合能力。
在前端,无论移动端、网页端或小程序端等应用方式,也都可以使用上述服务聚合方式。
此外,可预先定义多个类型的数据存储结构,比如,“userId”为需要查询的用户ID、“error”存放接口返回的报错信息、“count”用于记录循环的次数。同时,还有“userData”、“postData”和“repliesData”用于存放返回的数据。
此外,至于循环类型对应的服务聚合模块,可先定义循环的前置操作和后置操作,当循环判断的结果为真时,发起微服务请求,直到循环判断的结果为假为止。
最终,当服务全部执行完成后,可将“userData”、“postData”和“repliesData”中的数据返回,以得到响应结果。
图6为本发明实施例提供的一种基于微服务的请求响应系统的结构示意图,如图6所示,该系统包括:请求接收模块301、模型确定模块302及请求响应模块303;
请求接收模块301,用于接收数据请求;
模型确定模块302,用于根据所述数据请求的请求类型确定处理所述数据请求的服务聚合模型;
请求响应模块303,用于基于所述服务聚合模型的模型结构处理与所述数据请求对应的微服务请求,以响应所述数据请求。
本发明实施例提供的基于微服务的请求响应系统,先接收数据请求;根据所述数据请求的请求类型确定处理所述数据请求的服务聚合模型;基于所述服务聚合模型的模型结构处理与所述数据请求对应的微服务请求,以响应所述数据请求。本发明实施例将通过服务聚合模型来处理拆分后的微服务请求,进而完成了对于原有数据请求的处理操作,可见,本发明实施例给出了一类较好的针对请求处理场景的微服务架构落地方案,解决了如何在微服务架构下进行请求处理的技术问题。
本发明实施例提供的系统实施例是为了实现上述各方法实施例的,具体流程和详细内容请参照上述方法实施例,此处不再赘述。
图7为本发明实施例提供的一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)401、通信接口(Communications Interface)402、存储器(memory)403和总线(bus)404,其中,处理器401,通信接口402,存储器403通过总线404完成相互间的通信。通信接口402可以用于电子设备的信息传输。处理器401可以调用存储器403中的逻辑指令,以执行包括如下的方法:
接收数据请求;
根据所述数据请求的请求类型确定处理所述数据请求的服务聚合模型;
基于所述服务聚合模型的模型结构处理与所述数据请求对应的微服务请求,以响应所述数据请求。
此外,上述的存储器403中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明上述各方法实施例的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:
接收数据请求;
根据所述数据请求的请求类型确定处理所述数据请求的服务聚合模型;
基于所述服务聚合模型的模型结构处理与所述数据请求对应的微服务请求,以响应所述数据请求。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种基于微服务的请求响应方法,其特征在于,包括:
接收数据请求;
根据所述数据请求的请求类型确定处理所述数据请求的服务聚合模型,所述服务聚合模型中包括与串行类型对应的第一服务聚合模块,或,与串行类型对应的第二服务聚合模块,或,与条件类型对应的第三服务聚合模块;
在所述服务聚合模型中包括所述第一服务聚合模块的情况下,在所述第一服务聚合模块中根据所述数据请求确定用户标识,并通过所述用户标识发起第一串行微服务请求,以响应所述数据请求;
在所述服务聚合模型中包括所述第二服务聚合模块的情况下,在所述第二服务聚合模块中根据所述数据请求确定主题标识,并通过所述主题标识发起第二串行微服务请求,以获得主题展开信息;在所述第二服务聚合模块中通过所述主题展开信息发起第三串行微服务请求,以保存所述主题展开信息至预设存储区域;在所述第二服务聚合模块中发起第四串行微服务请求,以获得回复记录;其中,所述第二服务聚合模块中的所述第二串行微服务请求、所述第三串行微服务请求及所述第四串行微服务请求顺序连接;
在所述服务聚合模型中包括所述第三服务聚合模块的情况下,在所述第三服务聚合模块中根据所述数据请求确定对应的当前条件,并发起与所述当前条件对应的第五串行微服务请求。
2.根据权利要求1所述的基于微服务的请求响应方法,其特征在于,所述接收数据请求之前,所述基于微服务的请求响应方法还包括:
基于与数据请求的请求类型对应的预设编排规则组合服务聚合模块,以构建由所述服务聚合模块组成的服务聚合模型。
3.根据权利要求1所述的基于微服务的请求响应方法,其特征在于,所述接收数据请求之前,所述基于微服务的请求响应方法还包括:
获取待替换微服务请求;
将服务聚合模型中的目标服务聚合模块对应的目标微服务请求替换为所述待替换微服务请求,以得到新的服务聚合模型。
4.一种基于微服务的请求响应系统,其特征在于,包括:
请求接收模块,用于接收数据请求;
模型确定模块,用于根据所述数据请求的请求类型确定处理所述数据请求的服务聚合模型,所述服务聚合模型中包括与串行类型对应的第一服务聚合模块,或,与串行类型对应的第二服务聚合模块,或,与条件类型对应的第三服务聚合模块;
请求响应模块,用于在所述服务聚合模型中包括所述第一服务聚合模块的情况下,在所述第一服务聚合模块中根据所述数据请求确定用户标识,并通过所述用户标识发起第一串行微服务请求,以响应所述数据请求;在所述服务聚合模型中包括所述第二服务聚合模块的情况下,在所述第二服务聚合模块中根据所述数据请求确定主题标识,并通过所述主题标识发起第二串行微服务请求,以获得主题展开信息;在所述第二服务聚合模块中通过所述主题展开信息发起第三串行微服务请求,以保存所述主题展开信息至预设存储区域;在所述第二服务聚合模块中发起第四串行微服务请求,以获得回复记录;其中,所述第二服务聚合模块中的所述第二串行微服务请求、所述第三串行微服务请求及所述第四串行微服务请求顺序连接;在所述服务聚合模型中包括所述第三服务聚合模块的情况下,在所述第三服务聚合模块中根据所述数据请求确定对应的当前条件,并发起与所述当前条件对应的第五串行微服务请求。
5.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至3中任一项所述基于微服务的请求响应方法的步骤。
6.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3中任一项所述基于微服务的请求响应方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010378809.3A CN111638972B (zh) | 2020-05-07 | 2020-05-07 | 基于微服务的请求响应方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010378809.3A CN111638972B (zh) | 2020-05-07 | 2020-05-07 | 基于微服务的请求响应方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111638972A CN111638972A (zh) | 2020-09-08 |
CN111638972B true CN111638972B (zh) | 2023-09-01 |
Family
ID=72329023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010378809.3A Active CN111638972B (zh) | 2020-05-07 | 2020-05-07 | 基于微服务的请求响应方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111638972B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111984720A (zh) * | 2020-09-11 | 2020-11-24 | 得到(天津)文化传播有限公司 | 一种数据获取方法、装置、电子设备和接口适配装置 |
CN112667205B (zh) * | 2020-12-19 | 2023-10-10 | 南方电网数字平台科技(广东)有限公司 | 停电编排微服务的开发方法、装置和计算机设备 |
CN113259408B (zh) * | 2021-03-30 | 2023-06-20 | 中海油信息科技有限公司 | 数据传输方法和系统 |
CN113364853B (zh) * | 2021-06-02 | 2022-10-25 | 北京奇艺世纪科技有限公司 | 一种业务服务系统、业务请求方法及网关设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107979635A (zh) * | 2017-10-24 | 2018-05-01 | 广东康美通信息服务有限公司 | 基于微服务的系统、方法及存储介质 |
CN109040152A (zh) * | 2017-06-08 | 2018-12-18 | 阿里巴巴集团控股有限公司 | 一种基于服务编排的服务请求和提供方法、装置以及电子设备 |
CN110008045A (zh) * | 2019-04-12 | 2019-07-12 | 深圳乐信软件技术有限公司 | 微服务的聚合方法、装置、设备及存储介质 |
CN110149397A (zh) * | 2019-05-20 | 2019-08-20 | 湖北亿咖通科技有限公司 | 一种微服务整合方法和装置 |
CN110310034A (zh) * | 2019-06-28 | 2019-10-08 | 京东数字科技控股有限公司 | 一种应用于SaaS的服务编排、业务流程处理方法和装置 |
CN110750271A (zh) * | 2019-10-21 | 2020-02-04 | 珠海格力电器股份有限公司 | 服务聚合、聚合服务的执行方法、装置和电子设备 |
CN111061463A (zh) * | 2019-12-26 | 2020-04-24 | 深圳前海环融联易信息科技服务有限公司 | 微服务组合应用方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10318446B2 (en) * | 2016-11-16 | 2019-06-11 | International Business Machines Corporation | Aggregation handling |
-
2020
- 2020-05-07 CN CN202010378809.3A patent/CN111638972B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109040152A (zh) * | 2017-06-08 | 2018-12-18 | 阿里巴巴集团控股有限公司 | 一种基于服务编排的服务请求和提供方法、装置以及电子设备 |
CN107979635A (zh) * | 2017-10-24 | 2018-05-01 | 广东康美通信息服务有限公司 | 基于微服务的系统、方法及存储介质 |
CN110008045A (zh) * | 2019-04-12 | 2019-07-12 | 深圳乐信软件技术有限公司 | 微服务的聚合方法、装置、设备及存储介质 |
CN110149397A (zh) * | 2019-05-20 | 2019-08-20 | 湖北亿咖通科技有限公司 | 一种微服务整合方法和装置 |
CN110310034A (zh) * | 2019-06-28 | 2019-10-08 | 京东数字科技控股有限公司 | 一种应用于SaaS的服务编排、业务流程处理方法和装置 |
CN110750271A (zh) * | 2019-10-21 | 2020-02-04 | 珠海格力电器股份有限公司 | 服务聚合、聚合服务的执行方法、装置和电子设备 |
CN111061463A (zh) * | 2019-12-26 | 2020-04-24 | 深圳前海环融联易信息科技服务有限公司 | 微服务组合应用方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
万书鹏等.基于微服务架构的新一代调控系统服务编排技术.《电力系统自动化》.第43卷(第22期),第116-121页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111638972A (zh) | 2020-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111638972B (zh) | 基于微服务的请求响应方法、系统、设备及存储介质 | |
CN110163755B (zh) | 基于区块链的数据压缩、查询方法及装置和电子设备 | |
CN110321226A (zh) | 主机的自动扩缩容方法、装置、主机及存储介质 | |
CN106209943A (zh) | 通讯节点的选择方法及装置 | |
CN107580032B (zh) | 数据处理方法、装置及设备 | |
CN112764920A (zh) | 一种边缘应用部署方法、装置、设备和存储介质 | |
CN116257438A (zh) | 接口测试用例的更新方法及相关设备 | |
CN106341497B (zh) | 数字id生成方法及装置 | |
CN112052157B (zh) | 测试报文的构造方法、装置及系统 | |
CN109614271A (zh) | 多个集群数据一致性的控制方法、装置、设备及存储介质 | |
CN112044061B (zh) | 游戏画面处理方法、装置、电子设备以及存储介质 | |
CN108228310B (zh) | 虚拟网络功能的均衡部署方法及装置 | |
CN114640657A (zh) | 多注册中心的融合方法、装置 | |
CN109101408B (zh) | 联调环境中业务可用性的检测方法和装置 | |
CN110908644A (zh) | 状态节点的配置方法、装置、计算机设备和存储介质 | |
CN116048490A (zh) | 业务事件处理方法、装置、计算机设备和存储介质 | |
CN108241671B (zh) | 业务处理方法和系统及存储介质 | |
CN113869989B (zh) | 一种信息处理方法及装置 | |
CN115563160A (zh) | 数据处理方法、装置、计算机设备和计算机可读存储介质 | |
CN114390015A (zh) | 一种基于物模型的数据推送系统、方法、设备及存储介质 | |
CN111324368B (zh) | 一种数据共享方法及服务器 | |
CN113965900B (zh) | 流量资源动态扩容的方法、装置、计算设备及存储介质 | |
CN112950378B (zh) | 在区块链中执行智能合约的方法和装置 | |
CN114979153B (zh) | 负载均衡方法、计算机设备及存储装置 | |
CN114710443B (zh) | 一种针对转发服务器的流量调度方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |