CN117675925A - 用于微服务间的请求转发方法及其装置、电子设备 - Google Patents
用于微服务间的请求转发方法及其装置、电子设备 Download PDFInfo
- Publication number
- CN117675925A CN117675925A CN202311587751.3A CN202311587751A CN117675925A CN 117675925 A CN117675925 A CN 117675925A CN 202311587751 A CN202311587751 A CN 202311587751A CN 117675925 A CN117675925 A CN 117675925A
- Authority
- CN
- China
- Prior art keywords
- request
- service
- micro
- format
- identifier
- 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
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000005520 cutting process Methods 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims description 41
- 238000012544 monitoring process Methods 0.000 claims description 34
- 238000012795 verification Methods 0.000 claims description 33
- 230000008569 process Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 13
- 230000000977 initiatory effect Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- 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
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种用于微服务间的请求转发方法及其装置、电子设备,涉及金融科技领域或其他相关领域,其中,该请求转发方法包括:接收前端发起的预设请求,对预设请求进行切割处理,得到微服务标识、资源标识以及请求方式标识,并基于请求方式标识确定入参格式以及出参格式,基于资源标识、入参格式以及出参格式调整预设请求,得到调用请求,采用微服务标识对应的请求器,将调用请求转发至微服务标识指示的目标微服务。本发明解决了相关技术中需要对每个请求进行单独接收与转发,导致系统的可扩展性低的技术问题。
Description
技术领域
本发明涉及金融科技领域,具体而言,涉及一种用于微服务间的请求转发方法及其装置、电子设备。
背景技术
为降低服务耦合度,可以根据业务将服务拆分为多个微服务。但由于服务没进行前后端分离,使得服务A包含前端业务和用户认证业务(即后端业务)等,因此,前端在调用后端服务时,都需经过服务A的后台处理后,再由服务A转发到其他微服务,导致每个请求都需要在服务A的服务节点进行接收,然后再将此请求根据业务需求转发到其他服务节点上。
图1是根据相关技术中的一种可选的请求在微服务间的转发流程的示意图,如图1所示,服务A包含前端业务和后端业务,每个请求都需要在服务A的服务节点进行接收,然后再将此请求根据业务需求转发到其他服务的服务节点上,例如,转发到服务B的服务节点上或者服务C的服务节点上等。
相关技术中,每个请求需要单独实现请求的接收和新请求的发起,不仅代码量大,维护成功高,而且每个请求的独自实现导致可扩展性低,不利于快速扩展所有请求的监控,日志处理等功能。
图2是根据相关技术中的一种可选的为每个请求各自实现请求转发流程的示意图,如图2所示,每个请求需要各自实现请求接收与转发,在服务A——管控台上,前端发起的每个请求在权限校验通过后,需要对每个请求单独进行接收请求,并单独进行发起请求,以使该请求转发至相应的服务,例如,单独对请求1进行接收请求与发起请求,以使请求1转发至服务B上;单独对请求2进行接收请求与发起请求,以使请求2转发至服务C上;单独对请求3进行接收请求与发起请求,以使请求3转发至服务C上。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种用于微服务间的请求转发方法及其装置、电子设备,以至少解决相关技术中需要对每个请求进行单独接收与转发,导致系统的可扩展性低的技术问题。
根据本发明实施例的一个方面,提供了一种用于微服务间的请求转发方法,包括:接收前端发起的预设请求,其中,所述预设请求是对业务请求进行组装得到的请求;对所述预设请求进行切割处理,得到微服务标识、资源标识以及请求方式标识,并基于所述请求方式标识确定入参格式以及出参格式;基于所述资源标识、所述入参格式以及所述出参格式调整所述预设请求,得到调用请求;采用所述微服务标识对应的请求器,将所述调用请求转发至所述微服务标识指示的目标微服务,其中,所述目标微服务用于处理所述调用请求,执行所述业务请求指示的业务。
进一步地,在接收前端发起的预设请求之前,还包括:通过所述前端接收所述业务请求;通过所述前端解析所述业务请求,得到所述业务请求的所述请求方式标识、所述微服务标识以及所述资源标识;通过所述前端基于预设转发要求,组装所述请求方式标识、所述微服务标识以及所述资源标识,得到所述预设请求。
进一步地,在接收前端发起的预设请求之后,还包括:获取当前登录用户的用户信息;对所述用户信息进行权限校验,得到校验结果;在所述校验结果指示所述当前登录用户具有处理所述业务请求涉及的业务的权限的情况下,确定所述当前登录用户通过权限校验。
进一步地,基于所述请求方式标识确定入参格式以及出参格式的步骤,包括:基于所述请求方式标识,确定请求类型,其中,所述请求类型包括下述至少之一:获取请求类型、提交请求类型、分页查询请求类型、上传请求类型、下载请求类型;基于所述请求类型,确定所述入参格式以及所述出参格式,其中,所述入参格式是所述目标微服务处理所述调用请求时调用参数的参数格式,所述出参格式是所述目标微服务处理所述调用请求后返回参数的参数格式。
进一步地,在基于所述资源标识、所述入参格式以及所述出参格式调整所述预设请求,得到调用请求之前,还包括:确定所述资源标识指示的资源地址中的预设参数;将当前登录用户的用户信息组装到所述预设参数中,得到组装后的所述资源地址。
进一步地,在采用所述微服务标识对应的请求器,将所述调用请求转发至所述微服务标识指示的目标微服务之后,还包括:所述目标微服务响应所述调用请求,进入所述调用请求的请求地址指示的请求界面,其中,所述请求地址是所述资源标识指示的资源地址;所述目标微服务在进入所述请求界面的情况下,依据所述入参格式调用所述调用请求涉及的参数,完成对所述调用请求的处理;所述目标微服务在对所述调用请求处理完成的情况下,将处理结果中的参数的参数格式转换为所述出参格式,生成返回请求,并将所述返回请求返回至后端。
进一步地,所述请求转发方法还包括:在接收到所述预设请求的情况下,对所述预设请求进行监控,并生成所述预设请求的监控日志;在接收到返回请求的情况下,对所述返回请求进行监控,并生成所述返回请求的监控日志。
根据本发明实施例的另一方面,还提供了一种用于微服务间的请求转发装置,包括:接收单元,用于接收前端发起的预设请求,其中,所述预设请求是对业务请求进行组装得到的请求;确定单元,用于对所述预设请求进行切割处理,得到微服务标识、资源标识以及请求方式标识,并基于所述请求方式标识确定入参格式以及出参格式;调整单元,用于基于所述资源标识、所述入参格式以及所述出参格式调整所述预设请求,得到调用请求;转发单元,用于采用所述微服务标识对应的请求器,将所述调用请求转发至所述微服务标识指示的目标微服务,其中,所述目标微服务用于处理所述调用请求,执行所述业务请求指示的业务。
进一步地,所述请求转发装置还包括:第一接收模块,用于在接收前端发起的预设请求之前,通过所述前端接收所述业务请求;第一解析模块,用于通过所述前端解析所述业务请求,得到所述业务请求的所述请求方式标识、所述微服务标识以及所述资源标识;第一组装模块,用于通过所述前端基于预设转发要求,组装所述请求方式标识、所述微服务标识以及所述资源标识,得到所述预设请求。
进一步地,所述请求转发装置还包括:第一获取模块,用于在接收前端发起的预设请求之后,获取当前登录用户的用户信息;第一校验模块,用于对所述用户信息进行权限校验,得到校验结果;第一确定模块,用于在所述校验结果指示所述当前登录用户具有处理所述业务请求涉及的业务的权限的情况下,确定所述当前登录用户通过权限校验。
进一步地,所述确定单元包括:第二确定模块,用于基于所述请求方式标识,确定请求类型,其中,所述请求类型包括下述至少之一:获取请求类型、提交请求类型、分页查询请求类型、上传请求类型、下载请求类型;第三确定模块,用于基于所述请求类型,确定所述入参格式以及所述出参格式,其中,所述入参格式是所述目标微服务处理所述调用请求时调用参数的参数格式,所述出参格式是所述目标微服务处理所述调用请求后返回参数的参数格式。
进一步地,所述请求转发装置还包括:第四确定模块,用于在基于所述资源标识、所述入参格式以及所述出参格式调整所述预设请求,得到调用请求之前,确定所述资源标识指示的资源地址中的预设参数;第二组装模块,用于将当前登录用户的用户信息组装到所述预设参数中,得到组装后的所述资源地址。
进一步地,所述请求转发装置还包括:第一响应模块,用于在采用所述微服务标识对应的请求器,将所述调用请求转发至所述微服务标识指示的目标微服务之后,所述目标微服务响应所述调用请求,进入所述调用请求的请求地址指示的请求界面,其中,所述请求地址是所述资源标识指示的资源地址;第一调用模块,用于所述目标微服务在进入所述请求界面的情况下,依据所述入参格式调用所述调用请求涉及的参数,完成对所述调用请求的处理;第一转换模块,用于所述目标微服务在对所述调用请求处理完成的情况下,将处理结果中的参数的参数格式转换为所述出参格式,生成返回请求,并将所述返回请求返回至后端。
进一步地,所述请求转发装置还包括:第一监控模块,用于在接收到所述预设请求的情况下,对所述预设请求进行监控,并生成所述预设请求的监控日志;第二监控模块,用于在接收到返回请求的情况下,对所述返回请求进行监控,并生成所述返回请求的监控日志。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项用于微服务间的请求转发方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述任意一项用于微服务间的请求转发方法。
在本发明中,接收前端发起的预设请求,对预设请求进行切割处理,得到微服务标识、资源标识以及请求方式标识,并基于请求方式标识确定入参格式以及出参格式,基于资源标识、入参格式以及出参格式调整预设请求,得到调用请求,采用微服务标识对应的请求器,将调用请求转发至微服务标识指示的目标微服务。在本发明中,对接收到的预设请求进行切割处理,以得到微服务标识、资源标识以及请求方式标识,然后根据请求方式标识确定入参格式以及出参格式,再根据资源标识、入参格式以及出参格式调整预设请求,以得到调用请求,之后采用微服务标识对应的请求器,将调用请求转发至微服务标识指示的目标微服务,以使目标微服务处理调用请求,完成相应业务,实现了自动对请求分析并发送请求到相应微服务中,且由于所有请求由统一请求器转发,可快速扩展所有请求的监控,日志处理等功能,进而解决了相关技术中需要对每个请求进行单独接收与转发,导致系统的可扩展性低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术中的一种可选的请求在微服务间的转发流程的示意图;
图2是根据相关技术中的一种可选的为每个请求各自实现请求转发流程的示意图;
图3是根据本发明实施例的一种可选的用于微服务间的请求转发方法的流程图;
图4是根据本发明实施例的一种可选的微服务间智能路由转发的示意图;
图5是根据本发明实施例的一种可选的智能路由转发结构的示意图;
图6是根据本发明实施例的一种可选的智能路由转发流程的示意图;
图7是根据本发明实施例的一种可选的用于微服务间的请求转发装置的示意图;
图8是根据本发明实施例的一种用于微服务间的请求转发方法的电子设备(或移动设备)的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于本领域技术人员理解本发明,下面对本发明各实施例中涉及的部分术语或名词做出解释:
微服务:将大型应用程序分解为一组较小的服务的方法,每个服务都独立开发,独立运行,不同微服务间可通过HTTP(Hypertext Transfer Protocol,即超文本传输协议)接口通信。
前后端分离:将前端和后端分离开发,通过约定好的数据交互接口进行数据交互。
统一资源标识符(Uniform Resource Identifier,简称URI):用于标识某一互联网资源名称的字符串,即一个URI对应唯一一个方法。
需要说明的是,本发明中的用于微服务间的请求转发方法及其装置可用于金融科技领域在对微服务间的请求进行转发的情况下,也可用于除金融科技领域之外的任意领域在对微服务间的请求进行转发的情况下,本发明中对用于微服务间的请求转发方法及其装置的应用领域不做限定。
需要说明的是,本发明所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
本发明下述各实施例可应用于各种对微服务间的请求进行转发的系统/应用/设备中。为降低研发成本,提升系统的可扩展性,本发明提出了一种微服务间智能路由转发方法,所有请求由前端发起后,当前服务无需再编码,而是通过智能路由自动实现请求分析并发送请求到各微服务中,且由于所有请求由统一请求器转发,可快速扩展所有请求的监控,日志处理等功能。
下面结合各个实施例来详细说明本发明。
实施例一
根据本发明实施例,提供了一种用于微服务间的请求转发方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图3是根据本发明实施例的一种可选的用于微服务间的请求转发方法的流程图,如图3所示,该方法包括如下步骤:
步骤S301,接收前端发起的预设请求,其中,预设请求是对业务请求进行组装得到的请求。
步骤S302,对预设请求进行切割处理,得到微服务标识、资源标识以及请求方式标识,并基于请求方式标识确定入参格式以及出参格式。
步骤S303,基于资源标识、入参格式以及出参格式调整预设请求,得到调用请求。
步骤S304,采用微服务标识对应的请求器,将调用请求转发至微服务标识指示的目标微服务,其中,目标微服务用于处理调用请求,执行业务请求指示的业务。
通过上述步骤,可以接收前端发起的预设请求,对预设请求进行切割处理,得到微服务标识、资源标识以及请求方式标识,并基于请求方式标识确定入参格式以及出参格式,基于资源标识、入参格式以及出参格式调整预设请求,得到调用请求,采用微服务标识对应的请求器,将调用请求转发至微服务标识指示的目标微服务。在本发明实施例中,对接收到的预设请求进行切割处理,以得到微服务标识、资源标识以及请求方式标识,然后根据请求方式标识确定入参格式以及出参格式,再根据资源标识、入参格式以及出参格式调整预设请求,以得到调用请求,之后采用微服务标识对应的请求器,将调用请求转发至微服务标识指示的目标微服务,以使目标微服务处理调用请求,完成相应业务,实现了自动对请求分析并发送请求到相应微服务中,且由于所有请求由统一请求器转发,可快速扩展所有请求的监控,日志处理等功能,进而解决了相关技术中需要对每个请求进行单独接收与转发,导致系统的可扩展性低的技术问题。
下面结合上述各步骤对本发明实施例进行详细说明。
在本发明实施例中,能够实现统一接收请求,并将请求智能转发到各个微服务中。图4是根据本发明实施例的一种可选的微服务间智能路由转发的示意图,如图4所示,在服务A——管控台上,前端发起的所有请求在权限校验通过后,能够统一进行接收请求,并通过智能路由将请求转发到各相应微服务(例如,服务B、服务C、服务D等)中。
一种可选地实施例,在接收前端发起的预设请求之前,还包括:通过前端接收业务请求;通过前端解析业务请求,得到业务请求的请求方式标识、微服务标识以及资源标识;通过前端基于预设转发要求,组装请求方式标识、微服务标识以及资源标识,得到预设请求。
在本发明实施例中,前端在接收到业务请求时,需要按照转发要求(即预设转发要求)组装新的请求(即预设请求),具体为:前端可以解析业务请求,以得到业务请求的请求方式标识(例如,get、post、table、upload以及download等)、微服务标识(即微服务对应的唯一标识,例如,serivce-A)以及资源标识(即微服务的URI地址,例如,getUser),然后再预设转发要求,组装请求方式标识、微服务标识以及资源标识,以得到预设请求,即前端在发起请求时需要在请求中添加对应资源标志(即URI地址)和需调用服务标志,例如,需要get请求微服务A的URI地址为:getUser,则前端发起请求为get/serivce-A/getUser。
步骤S301,接收前端发起的预设请求,其中,预设请求是对业务请求进行组装得到的请求。
在本发明实施例中,后端可以接收前端发起的预设请求,该预设请求是前端对业务请求进行重新组装得到的请求,然后对预设请求进行分析处理后,统一智能转发至相应微服务。
可选地,在接收前端发起的预设请求之后,还包括:获取当前登录用户的用户信息;对用户信息进行权限校验,得到校验结果;在校验结果指示当前登录用户具有处理业务请求涉及的业务的权限的情况下,确定当前登录用户通过权限校验。
在本发明实施例中,后端可以对当前登录用户进行权限校验,并在校验通过后对请求放行,具体为:后端可以先获取当前登录用户的用户信息(例如,账户密码等),然后对用户信息进行权限校验,如果得到的校验结果指示当前登录用户具有处理业务请求涉及的业务的权限,则可以确定当前登录用户通过权限校验。
步骤S302,对预设请求进行切割处理,得到微服务标识、资源标识以及请求方式标识,并基于请求方式标识确定入参格式以及出参格式。
可选地,基于请求方式标识确定入参格式以及出参格式的步骤,包括:基于请求方式标识,确定请求类型,其中,请求类型包括下述至少之一:获取请求类型、提交请求类型、分页查询请求类型、上传请求类型、下载请求类型;基于请求类型,确定入参格式以及出参格式,其中,入参格式是目标微服务处理调用请求时调用参数的参数格式,出参格式是目标微服务处理调用请求后返回参数的参数格式。
在本发明实施例中,后端可以对接收到的预设请求做切割,以得到请求方式标识、服务节点信息(即微服务标识)和真实请求微服务的URI(即资源标识)(即对预设请求进行切割处理,得到微服务标识、资源标识以及请求方式标识)。之后,后端可以根据请求方式标识,确认发起对微服的调用的参数格式(即入参格式)和微服务返回的结果信息接收格式(即出参格式),具体为:后端可以根据请求方式标识,确定请求类型(例如,获取请求类型、提交请求类型、分页查询请求类型、上传请求类型、下载请求类型等),例如,get标识对应获取请求类型、post标识对应提交请求类型、table标识对应分页查询请求类型、upload标识对应上传请求类型、download标识对应下载请求类型,然后根据请求类型,确定入参格式(即目标微服务处理调用请求时调用参数的参数格式)以及出参格式(即目标微服务处理调用请求后返回参数的参数格式)。例如,分页查询请求table的入参格式为带统一的分页查询信息,出参格式为带统一的分页结果信息,以供表格展示;上传请求upload的入参格式为带文件;下载请求download的出参格式为数组统一转换成文本。
可选地,在基于资源标识、入参格式以及出参格式调整预设请求,得到调用请求之前,还包括:确定资源标识指示的资源地址中的预设参数;将当前登录用户的用户信息组装到预设参数中,得到组装后的资源地址。
在本发明实施例中,后端可以重新组装查询参数(即资源地址中的预设参数),具体为:后端可以先确定资源标识指示的资源地址中的预设参数,然后将当前登录用户的用户信息组装到预设参数中,以得到组装后的资源地址(即将当前登录用户信息组装到URI的查询参数中),以供各个微服务使用,例如,保存数据时记录当前操作人(即当前登录用户),以便于后续其他微服务的处理节点能够方便查询到当前操作人。
步骤S303,基于资源标识、入参格式以及出参格式调整预设请求,得到调用请求。
在本发明实施例中,可以根据组装好的资源地址,确定的入参格式以及出参格式重新调整预设请求,以得到转发给相应微服务的调用请求。
步骤S304,采用微服务标识对应的请求器,将调用请求转发至微服务标识指示的目标微服务,其中,目标微服务用于处理调用请求,执行业务请求指示的业务。
在本发明实施例中,可以根据微服务标识(如:serivce-A),得到对应发起请求的请求器(如:微服务A的请求器),即每个微服务对应一个请求器,以保证请求能发送到设定的微服务中。
在本发明实施例中,可以采用微服务标识对应的请求器对相应微服务发起请求,请求地址为调用请求中的URI,请求入参格式和出参格式由调用请求中的入参格式和出参格式决定(即采用微服务标识对应的请求器,将调用请求转发至微服务标识指示的目标微服务),例如,服务A的请求器中的所有请求都会发送到微服务A上,每个请求器都会实现相应方法(如,get方法,post方法,table方法,upload方法,download方法等,以处理不同类型的返回值。
在本发明实施例中,目标微服务可以接收来自上游的请求,以处理真正的业务(即目标微服务处理调用请求,执行业务请求指示的业务)。
可选地,在采用微服务标识对应的请求器,将调用请求转发至微服务标识指示的目标微服务之后,还包括:目标微服务响应调用请求,进入调用请求的请求地址指示的请求界面,其中,请求地址是资源标识指示的资源地址;目标微服务在进入请求界面的情况下,依据入参格式调用调用请求涉及的参数,完成对调用请求的处理;目标微服务在对调用请求处理完成的情况下,将处理结果中的参数的参数格式转换为出参格式,生成返回请求,并将返回请求返回至后端。
在本发明实施例中,目标微服务接收到相应请求器转发的调用请求后,可以响应调用请求,以进入调用请求的请求地址(该请求地址是资源标识指示的资源地址)指示的请求界面,并且在目标微服务在进入请求界面后,可以依据入参格式调用调用请求涉及的参数,以完成对调用请求的处理(即将请求界面所需要的参数以入参格式进行操作),然后目标微服务在对调用请求处理完成后,需要将处理结果中的参数的参数格式转换为出参格式,生成返回请求,并将返回请求返回至后端。
可选地,请求转发方法还包括:在接收到预设请求的情况下,对预设请求进行监控,并生成预设请求的监控日志;在接收到返回请求的情况下,对返回请求进行监控,并生成返回请求的监控日志。
在本发明实施例中,后端在接收到预设请求后,可以对预设请求进行增强,例如,记录请求日志,记录调用次数,进行限流处理等业务,以实现对预设请求的监控,生成预设请求的监控日志(即在接收到预设请求的情况下,对预设请求进行监控,并生成预设请求的监控日志)。
在本发明实施例中,后端在接收到返回请求后,可以对返回请求进行增强,例如,记录返回时间,计算每个请求的耗时等数据情况,并且如果需要返回用户信息,则将用户标识统一转换为用户名称等,以实现对返回请求的监控,生成返回请求的监控日志(即在接收到返回请求的情况下,对返回请求进行监控,并生成返回请求的监控日志)。
下面结合另一种可选的具体实施方式进行详细说明。
在本发明实施例中,提出了一种微服务间智能路由转发方法,能够统一接收请求,并智能转发到各个微服务中。
图5是根据本发明实施例的一种可选的智能路由转发结构的示意图,如图5所示,包括:前端、权限校验、后端请求方法、请求增强、请求器匹配、微服务请求器、微服务,各模块具体功能如下:
前端:前端发起请求时添加对应资源标志和需调用服务标志,例如,需要get请求微服务A的URI地址为:XXXX,则前端发起请求为get/serivce-A/XXXX;需要table请求微服务B的URI地址为:XXXX,则前端发起请求为table/serivce-B/XXXX;需要upload请求微服务B的URI地址为:XXXX,则前端发起请求为upload/serivce-B/XXXX;需要download请求微服务C的URI地址为:XXXX,则前端发起请求为download/serivce-C/XXXX。
权限校验:后端对当前登录用户进行权限校验,校验通过后对请求放行。
后端请求方法:用于统一与前端交互。根据请求方式,确定请求类型,例如,get、post、table、upload、download等请求类型。
请求增强:用于记录请求日志,记录调用次数,限流处理等业务。此处,除了请求进入增强,也包括请求返回增强,可计算每个请求的耗时等数据情况。
请求器匹配:根据服务标志(如:serivce-A),得到对应发起请求的请求器(如:微服务A的请求器),每个微服务对应一个请求器,以保证请求能发送到设定的微服务中。
微服务请求器:用于对对应的微服发起请求。例如,服务A请求器中所有请求(包括:get、post、table、upload、download等请求)都会发送到微服务A上;服务B请求器中所有请求(包括:get、post、table、upload、download等请求)都会发送到微服务B上。
微服务:接收来自请求器的请求,处理真正的业务。
图6是根据本发明实施例的一种可选的智能路由转发流程的示意图,如图6所示,包括如下流程:
步骤一:前端发起请求,并按转发要求重新组装请求。
步骤二:后端进行用户权限校验。
步骤三:后端基于请求,获取URI并切割,得到请求节点信息和真实请求微服务的URI。
步骤四:根据请求节点信息获取对应请求器,以用于后续对对应微服务发起请求。
步骤五:获取步骤三得到的真实URI地址。
步骤六:根据请求中的请求标识,确定请求方式。
步骤七:根据请求方式确认入参和出参格式。
步骤八:新增入参当前登录用户,即将当前登录用户信息组装到URI的查询参数中。
步骤九:进行请求增强,如记录方法开始时间,入参,方法是否涉及限流等。
步骤十:采用步骤四中确定的请求器对下游微服务发起请求,请求地址为步骤五中的URI,请求入参和出参格式由步骤七和步骤八决定,并接收返回信息。
步骤十一:请求返回增强,如记录返回时间,如果返回用户,则将用户标识统一转换为用户名称等。
步骤十二:将增强后的请求结果返回给前端。
本发明实施例中,通过解析请求路径,能够智能确定需请求微服务和对应方法的返回参数格式,开发人员无需关注当前微服务与前端所在微服务的对接,能够降低开发编码量,降低研发成本,并且,统一请求处理方式后,可快速实现各类请求增强,快速扩展,提升了系统的整体的可扩展性。
下面结合另一实施例进行详细说明。
实施例二
本实施例中提供的一种用于微服务间的请求转发装置包含了多个实施单元,每个实施单元对应于上述实施例一中的各个实施步骤。
图7是根据本发明实施例的一种可选的用于微服务间的请求转发装置的示意图,如图7所示,该请求转发装置可以包括:接收单元70,确定单元71,调整单元72,转发单元73,其中,
接收单元70,用于接收前端发起的预设请求,其中,预设请求是对业务请求进行组装得到的请求;
确定单元71,用于对预设请求进行切割处理,得到微服务标识、资源标识以及请求方式标识,并基于请求方式标识确定入参格式以及出参格式;
调整单元72,用于基于资源标识、入参格式以及出参格式调整预设请求,得到调用请求;
转发单元73,用于采用微服务标识对应的请求器,将调用请求转发至微服务标识指示的目标微服务,其中,目标微服务用于处理调用请求,执行业务请求指示的业务。
上述请求转发装置,可以通过接收单元70接收前端发起的预设请求,通过确定单元71对预设请求进行切割处理,得到微服务标识、资源标识以及请求方式标识,并基于请求方式标识确定入参格式以及出参格式,通过调整单元72基于资源标识、入参格式以及出参格式调整预设请求,得到调用请求,通过转发单元73采用微服务标识对应的请求器,将调用请求转发至微服务标识指示的目标微服务。在本发明实施例中,对接收到的预设请求进行切割处理,以得到微服务标识、资源标识以及请求方式标识,然后根据请求方式标识确定入参格式以及出参格式,再根据资源标识、入参格式以及出参格式调整预设请求,以得到调用请求,之后采用微服务标识对应的请求器,将调用请求转发至微服务标识指示的目标微服务,以使目标微服务处理调用请求,完成相应业务,实现了自动对请求分析并发送请求到相应微服务中,且由于所有请求由统一请求器转发,可快速扩展所有请求的监控,日志处理等功能,进而解决了相关技术中需要对每个请求进行单独接收与转发,导致系统的可扩展性低的技术问题。
可选地,请求转发装置还包括:第一接收模块,用于在接收前端发起的预设请求之前,通过前端接收业务请求;第一解析模块,用于通过前端解析业务请求,得到业务请求的请求方式标识、微服务标识以及资源标识;第一组装模块,用于通过前端基于预设转发要求,组装请求方式标识、微服务标识以及资源标识,得到预设请求。
可选地,请求转发装置还包括:第一获取模块,用于在接收前端发起的预设请求之后,获取当前登录用户的用户信息;第一校验模块,用于对用户信息进行权限校验,得到校验结果;第一确定模块,用于在校验结果指示当前登录用户具有处理业务请求涉及的业务的权限的情况下,确定当前登录用户通过权限校验。
可选地,确定单元包括:第二确定模块,用于基于请求方式标识,确定请求类型,其中,请求类型包括下述至少之一:获取请求类型、提交请求类型、分页查询请求类型、上传请求类型、下载请求类型;第三确定模块,用于基于请求类型,确定入参格式以及出参格式,其中,入参格式是目标微服务处理调用请求时调用参数的参数格式,出参格式是目标微服务处理调用请求后返回参数的参数格式。
可选地,请求转发装置还包括:第四确定模块,用于在基于资源标识、入参格式以及出参格式调整预设请求,得到调用请求之前,确定资源标识指示的资源地址中的预设参数;第二组装模块,用于将当前登录用户的用户信息组装到预设参数中,得到组装后的资源地址。
可选地,请求转发装置还包括:第一响应模块,用于在采用微服务标识对应的请求器,将调用请求转发至微服务标识指示的目标微服务之后,目标微服务响应调用请求,进入调用请求的请求地址指示的请求界面,其中,请求地址是资源标识指示的资源地址;第一调用模块,用于目标微服务在进入请求界面的情况下,依据入参格式调用调用请求涉及的参数,完成对调用请求的处理;第一转换模块,用于目标微服务在对调用请求处理完成的情况下,将处理结果中的参数的参数格式转换为出参格式,生成返回请求,并将返回请求返回至后端。
可选地,请求转发装置还包括:第一监控模块,用于在接收到预设请求的情况下,对预设请求进行监控,并生成预设请求的监控日志;第二监控模块,用于在接收到返回请求的情况下,对返回请求进行监控,并生成返回请求的监控日志。
上述的请求转发装置还可以包括处理器和存储器,上述接收单元70,确定单元71,调整单元72,转发单元73等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来采用微服务标识对应的请求器,将调用请求转发至微服务标识指示的目标微服务。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:接收前端发起的预设请求,对预设请求进行切割处理,得到微服务标识、资源标识以及请求方式标识,并基于请求方式标识确定入参格式以及出参格式,基于资源标识、入参格式以及出参格式调整预设请求,得到调用请求,采用微服务标识对应的请求器,将调用请求转发至微服务标识指示的目标微服务。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述的用于微服务间的请求转发方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述的用于微服务间的请求转发方法。
图8是根据本发明实施例的一种用于微服务间的请求转发方法的电子设备(或移动设备)的硬件结构框图。如图8所示,电子设备可以包括一个或多个(图8中采用802a、802b,……,802n来示出)处理器802(处理器802可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器804。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图8所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本发明所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种用于微服务间的请求转发方法,其特征在于,包括:
接收前端发起的预设请求,其中,所述预设请求是对业务请求进行组装得到的请求;
对所述预设请求进行切割处理,得到微服务标识、资源标识以及请求方式标识,并基于所述请求方式标识确定入参格式以及出参格式;
基于所述资源标识、所述入参格式以及所述出参格式调整所述预设请求,得到调用请求;
采用所述微服务标识对应的请求器,将所述调用请求转发至所述微服务标识指示的目标微服务,其中,所述目标微服务用于处理所述调用请求,执行所述业务请求指示的业务。
2.根据权利要求1所述的请求转发方法,其特征在于,在接收前端发起的预设请求之前,还包括:
通过所述前端接收所述业务请求;
通过所述前端解析所述业务请求,得到所述业务请求的所述请求方式标识、所述微服务标识以及所述资源标识;
通过所述前端基于预设转发要求,组装所述请求方式标识、所述微服务标识以及所述资源标识,得到所述预设请求。
3.根据权利要求1所述的请求转发方法,其特征在于,在接收前端发起的预设请求之后,还包括:
获取当前登录用户的用户信息;
对所述用户信息进行权限校验,得到校验结果;
在所述校验结果指示所述当前登录用户具有处理所述业务请求涉及的业务的权限的情况下,确定所述当前登录用户通过权限校验。
4.根据权利要求1所述的请求转发方法,其特征在于,基于所述请求方式标识确定入参格式以及出参格式的步骤,包括:
基于所述请求方式标识,确定请求类型,其中,所述请求类型包括下述至少之一:获取请求类型、提交请求类型、分页查询请求类型、上传请求类型、下载请求类型;
基于所述请求类型,确定所述入参格式以及所述出参格式,其中,所述入参格式是所述目标微服务处理所述调用请求时调用参数的参数格式,所述出参格式是所述目标微服务处理所述调用请求后返回参数的参数格式。
5.根据权利要求1所述的请求转发方法,其特征在于,在基于所述资源标识、所述入参格式以及所述出参格式调整所述预设请求,得到调用请求之前,还包括:
确定所述资源标识指示的资源地址中的预设参数;
将当前登录用户的用户信息组装到所述预设参数中,得到组装后的所述资源地址。
6.根据权利要求1所述的请求转发方法,其特征在于,在采用所述微服务标识对应的请求器,将所述调用请求转发至所述微服务标识指示的目标微服务之后,还包括:
所述目标微服务响应所述调用请求,进入所述调用请求的请求地址指示的请求界面,其中,所述请求地址是所述资源标识指示的资源地址;
所述目标微服务在进入所述请求界面的情况下,依据所述入参格式调用所述调用请求涉及的参数,完成对所述调用请求的处理;
所述目标微服务在对所述调用请求处理完成的情况下,将处理结果中的参数的参数格式转换为所述出参格式,生成返回请求,并将所述返回请求返回至后端。
7.根据权利要求1所述的请求转发方法,其特征在于,所述请求转发方法还包括:
在接收到所述预设请求的情况下,对所述预设请求进行监控,并生成所述预设请求的监控日志;
在接收到返回请求的情况下,对所述返回请求进行监控,并生成所述返回请求的监控日志。
8.一种用于微服务间的请求转发装置,其特征在于,包括:
接收单元,用于接收前端发起的预设请求,其中,所述预设请求是对业务请求进行组装得到的请求;
确定单元,用于对所述预设请求进行切割处理,得到微服务标识、资源标识以及请求方式标识,并基于所述请求方式标识确定入参格式以及出参格式;
调整单元,用于基于所述资源标识、所述入参格式以及所述出参格式调整所述预设请求,得到调用请求;
转发单元,用于采用所述微服务标识对应的请求器,将所述调用请求转发至所述微服务标识指示的目标微服务,其中,所述目标微服务用于处理所述调用请求,执行所述业务请求指示的业务。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的用于微服务间的请求转发方法。
10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的用于微服务间的请求转发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311587751.3A CN117675925A (zh) | 2023-11-24 | 2023-11-24 | 用于微服务间的请求转发方法及其装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311587751.3A CN117675925A (zh) | 2023-11-24 | 2023-11-24 | 用于微服务间的请求转发方法及其装置、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117675925A true CN117675925A (zh) | 2024-03-08 |
Family
ID=90085599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311587751.3A Pending CN117675925A (zh) | 2023-11-24 | 2023-11-24 | 用于微服务间的请求转发方法及其装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117675925A (zh) |
-
2023
- 2023-11-24 CN CN202311587751.3A patent/CN117675925A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109067914B (zh) | Web服务的代理方法、装置、设备及存储介质 | |
WO2017097123A1 (zh) | 访问请求转换的方法和装置 | |
CN110633442A (zh) | 一种推送方法、装置及电子设备 | |
US20060168220A1 (en) | Network service providing method and system | |
CN111200523B (zh) | 中台系统配置方法、装置、设备及存储介质 | |
CN106487560A (zh) | 一种服务器配置信息的采集方法、装置及系统 | |
CN109150913B (zh) | 访问微服务架构下的应用的方法、装置、存储介质及服务器 | |
CN115525302B (zh) | 一种大规模数字对象仓库集群的部署方法及装置 | |
CN114124490A (zh) | 新媒体内容的发布方法及装置、存储介质及电子设备 | |
CN109600381B (zh) | 一种接口适配方法、装置及系统 | |
CN112118600B (zh) | 一种5g独立组网sa架构下的流量牵引系统 | |
CN117675925A (zh) | 用于微服务间的请求转发方法及其装置、电子设备 | |
CN109672732B (zh) | 一种接口适配方法、装置及系统 | |
CN112131014A (zh) | 决策引擎系统及其业务处理方法 | |
CN115334150B (zh) | 一种数据转发的方法、装置、系统、电子设备及介质 | |
CN111143650A (zh) | 获取页面数据的方法、装置、介质及电子设备 | |
CN110647448A (zh) | 一种移动应用操作日志数据实时分析方法、服务器和系统 | |
CN108737350B (zh) | 一种信息处理方法及客户端 | |
CN116466930A (zh) | 智能客服模型的构建方法、消息处理法、装置及电子设备 | |
CN113132383B (zh) | 一种网络数据采集方法及系统 | |
CN112532534B (zh) | 一种数据传输方法、装置以及计算机可读存储介质 | |
CN114697282A (zh) | 消息的处理方法及系统、存储介质、电子装置 | |
CN109743398B (zh) | 基于云计算的远程视频稽核方法、系统及计算机设备 | |
CN112597531A (zh) | 一种数据产品管理方法及装置 | |
CN115202800A (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 |