CN115988080A - 一种基于代理中间件的微服务资源调用方法和系统 - Google Patents
一种基于代理中间件的微服务资源调用方法和系统 Download PDFInfo
- Publication number
- CN115988080A CN115988080A CN202310279721.XA CN202310279721A CN115988080A CN 115988080 A CN115988080 A CN 115988080A CN 202310279721 A CN202310279721 A CN 202310279721A CN 115988080 A CN115988080 A CN 115988080A
- Authority
- CN
- China
- Prior art keywords
- service
- proxy
- micro
- processed
- middleware
- 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.)
- Granted
Links
Images
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
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明属于软件开发技术领域,提供一种基于代理中间件的微服务资源调用方法和系统,该方法包括:接收待处理调用请求,待处理调用请求包括内网调用请求和外网调用请求,待处理调用请求包括范围域标识、待访问微服务资源;将待处理调用请求接入代理中间件,通过代理中间件依次对待处理调用请求进行多级匹配判定,以进行分流分级代理转发,多级匹配判定包括一级匹配判定和二级匹配判定;将经分流分级代理转发后的待处理调用请求接入业务服务层以进行微服务资源调用,并返回相应的微服务资源。本发明的微服务资源调用方法在解决跨域问题的同时,将待处理调用请求分流到相应的微服务,同时能够保证微服务的业务独立性,能够极大降低配置复杂度。
Description
技术领域
本发明涉及软件开发技术领域,尤其涉及一种基于代理中间件的微服务资源调用方法和系统。
背景技术
企业应用集成是企业在不同应用系统之间通过技术、数据、控制等方面的集成手段实现数据共享的过程。传统的企业应用集成方式是在用户的客户端同时调用分属于不同访问域的多个应用系统的API来实现。但是,如果客户端是承载前端网页系统的浏览器,就面临请求资源的跨域问题。这需要在各后端业务系统中采用硬编码实现跨域过滤器来解决,进而会造成微服务业务不相关的代码冗余问题,同时还会增加开发和维护工作量。而如果客户端是需要对接API的外部系统,要求其配置多个不同的业务服务地址,会增加配置复杂度,还会造成不易使用和维护等问题。此外,在提升企业应用集成的整体效率和质量等多方面仍存在很大改进空间。
因此,有必要提供一种改进了的微服务资源调用方法,以解决上述问题。
发明内容
本发明意在提供一种基于代理中间件的微服务资源调用方法、装置、电子设备和可读介质,以解决现有技术中传统的应用集成系统中服务调用过程因业务不相关处理导致的代码冗余,无法解决请求服务资源的跨域问题,现有服务资源调用方法存在需要开发维护和配置工作量巨大等的技术问题。本发明要解决的技术问题通过以下技术方案来实现。
本发明第一方面提出一种基于代理中间件的微服务资源调用方法,包括:
接收待处理调用请求,所述待处理调用请求包括内网调用请求和外网调用请求,所述待处理调用请求包括范围域标识、待访问微服务资源;将所述待处理调用请求接入代理中间件,通过所述代理中间件依次对所述待处理调用请求进行多级匹配判定,以进行分流分级代理转发,其中,所述多级匹配判定包括一级匹配判定和二级匹配判定;将经分流分级代理转发后的待处理调用请求接入业务服务层以进行微服务资源调用,并返回与所述待处理调用请求相对应的微服务资源。
根据可选的实施方式,所述进行多级匹配判定包括:配置所述代理中间件的多个一级代理服务和多个二级代理服务,以形成第一级代理服务层和第二级代理服务层;先在所述第一级代理服务层进行一级匹配判定,再在所述第二级代理服务层进行二级匹配判定。
根据可选的实施方式,将所述待处理调用请求接入所述代理中间件的第一级代理服务层,在所述第一级代理服务层对所述待处理调用请求进行所述一级匹配判定,识别出包含前置范围域标识的待处理调用请求,以使同时接入所述第一级代理服务层的待处理调用请求分流,并将所识别出的待处理调用请求代理转发至所述第二级代理服务层。
根据可选的实施方式,经所述一级匹配判定之后,在所述第二级代理服务层对待处理调用请求进行所述二级匹配判定,识别出包含服务范围域标识的待处理调用请求,以使同时接入所述第二级代理服务层的待处理调用请求再分流。
根据可选的实施方式,经所述二级匹配判定之后,确定所述待处理调用请求的微服务标识,并将所述待处理调用请求代理转发至与所述微服务标识相对应的微服务。
根据可选的实施方式,所述代理中间件包括主代理中间件和从代理中间件。
根据可选的实施方式,通过检测件对所述主代理中间件和所述从代理中间件进行保活监控管理;在检测到所述代理中间件中的主代理中间件或从代理中间件出现故障时,自动将待处理调用请求接入没有故障的从代理中间件或主代理中间件。
根据可选的实施方式,接收内网应用集成系统的用户界面上的内网调用请求;和/或接收外部API集成系统的外网调用请求。
本发明第二方面提供一种微服务资源调用系统,采用本发明第一方面所述的微服务资源调用方法进行数据调用,所述微服务资源调用系统包括:集成应用层,包括多个不同的集成应用系统;代理服务层,包括多级代理服务层,具体包括与一级代理服务和二级代理服务相对应的第一级代理服务层和第二级代理服务层,所述第一级代理服务层用于一级匹配判定,所述第二级代理服务用于二级匹配判定;业务服务层,包括可提供API调用服务的内部微服务集群和外部微服务集群,所述内部微服务集群和外部微服务集群用于接入经所述分流分级代理转发的调用请求。
根据可选的实施方式,所述微服务资源调用系统还包括配置模块,所述配置模块用于配置所述代理中间件的多个一级代理服务和多个二级代理服务,以形成第一级代理服务层和第二级代理服务层;先在所述第一级代理服务层进行一级匹配判定,再在所述第二级代理服务层进行二级匹配判定。
本发明第三方面提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明第一方面所述的方法。
本发明第四方面提供一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现本发明第一方面所述的方法。
本发明实施例包括以下优点:
本发明实施例提供的微服务资源调用方法通过对代理中间件服务器进行分层设计,不同层的服务器各司其职,达到功能解耦的目的。通过代理中间件接入待处理调用请求,无需在用户界面配置与不同微服务相对应的调用接口进而大大降低了配置复杂度,使待处理调用请求(即api请求)和webui服务处于同一个数据服务域内,能够在解决跨域问题的同时,将待处理调用请求分流到相应的微服务,能够实现请求资源的跨域,同时能够保证微服务的业务独立性,能够提高调用效率,能够极大降低配置复杂度,能够使相关集成模块进一步解耦,还能够使各微服务的可维护性明显提高。
此外,本发明的微服务资源调用方法特别适用于企业集成应用系统与外部集成应用并存的数量超过一定量的多个集成应用系统在调用多种微服务资源的应用场景。具体通过代理中间件的第一级API代理服务层接入待处理调用请求,使待处理调用请求(即api请求)和webui服务处于同一个数据服务域内,能够在解决跨域问题的同时,经一级匹配判定进行分流,通过在第二级API代理服务层配置业务微服务的映射代理工作,并进行二级匹配判定,使识别出的待处理调用请求代理转发至业务服务层,使得后端服务不需要任何编码即可实现请求资源的跨域,同时能够保证各微服务的业务独立性,能够极大降低配置复杂度。
此外,通过检测件对代理中间件(具体为主代理中间件和从代理中间件)进行保活监控管理,能够有效保证代理中间件的多级代理转发功能,能够实现高可用性。
附图说明
图1是本发明的基于代理中间件的微服务资源调用方法的一示例的步骤流程图;
图2是应用本发明的微服务资源调用方法的一应用示例的示意图;
图3是本发明的微服务资源调用方法的代理中间件的配置文件的一示例的示意图;
图4是图1的微服务资源调用方法的代理中间件对待处理调用请求进行分流分级代理转发的一示例的示意图;
图5是本发明的基于代理中间件的微服务资源调用方法的另一示例的步骤流程图;
图6是根据本发明的微服务资源调用系统的一示例的结构示意图;
图7是根据本发明的电子设备实施例的结构示意图;
图8是根据本发明的计算机可读介质实施例的结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
鉴于上述问题,本发明提出一种微服务资源调用方法,通过对代理中间件服务器进行分层设计,不同层的服务器各司其职,达到功能解耦的目的。通过代理中间件接入请求,使待处理调用请求(即api请求)和webui服务处于同一个数据服务域内,在解决跨域问题的同时,能够将待处理调用请求分流到相应的微服务,能够实现请求资源的跨域,同时能够保证微服务的业务独立性,能够极大降低配置复杂度,能够使相关集成模块进一步解耦,还能够使各微服务的可维护性明显提高。
本发明的微服务资源调用方法特别适用于企业集成应用系统与外部集成应用并存的数量超过一定量的多个集成应用系统在调用多种微服务资源的应用场景。
下面参照图1至图5,将对本发明的内容进行详细说明。
图1是本发明的基于代理中间件的微服务资源调用方法的一示例的步骤流程图。图2是应用本发明的微服务资源调用方法的一应用示例的示意图。
本公开提供一种微服务资源调用方法,该微服务资源调用方法特别适用于多应用集成系统,例如,企业应用集成系统。如图2示例中的多应用集成系统包括内部集成WebUI系统和外部API集成系统。
需要说明的是,在多应用集成系统(例如图2的企业应用集成系统)的应用场景下,所述多应用集成系统(应用集成系统的数量超过一定数量之后)面对众多功能及对应的后端API资源,特别是内部集成WebUI系统和外部API集成系统在请求多种微服务(特别是微服务的接口数量大于预定值的微服务数量)的情况下,在同时进行微服务资源调用时,用户界面存在请求微服务资源的跨域问题。
下面将结合图1和图2具体说明本发明的微服务资源调用方法的调用过程。
首先,在步骤S101中,接收待处理调用请求,所述待处理调用请求包括内网调用请求和外网调用请求,所述待处理调用请求包括范围域标识、待访问微服务资源。
具体地,接收待处理调用请求,所述待处理调用请求用于表征内部集成WebUI系统和外部API集成系统调用各种微服务资源(例如微服务群的各种微服务资源)的调用请求,具体包括与内部集成WebUI系统相对应的内网调用请求、与外部API集成系统相对应的外网调用请求。例如,接收内网应用集成系统的用户界面上的内网调用请求。再例如,接收外部API集成系统的外网调用请求。
需要说明的是,在本发明中,所述微服务是指通过API(Application ProgrammingInterface,应用程序接口)进行通信的小型独立服务,即可通过API提供小型独立服务的服务。所述微服务资源是指与上述微服务相关,且指任何可被利用的计算资源和各种类型的数据资源。
在一实施方式中,当用户在内部集成WebUI系统的用户界面发送待处理调用请求时,所述待处理调用请求接入中间代理件所提供的虚拟地址例如VIP。即通过中间代理件代理转发,而无需在用户界面或浏览网页等页面配置与不同微服务相对应的调用接口进而大大降低了配置复杂度。
具体地,所述待处理调用请求包括范围域标识、待访问微服务资源,其中,所述范围域标识用于区分来自内部集成WebUI系统(即WebUI前端集成系统)和外部API集成系统的调用请求。
在一具体实施方式中,所述范围域标识包括前置范围域标识、服务域标识等,所述前置范围域标识例如为针对提供不同API能力来源的前置范围域标识,并使用/inapi和/outapi表示,其中,使用/inapi表示使用内部微服务提供API能力的前置范围域标识,使用/outapi表示使用外部微服务提供API能力的前置范围域标识。而所述服务域标识用于区分各微服务类型、端口等。
需要说明的是,上述仅作为可选示例进行说明,不能理解成对本发明的限制。
在步骤S102中,将所述待处理调用请求接入代理中间件,通过所述代理中间件依次对所述待处理调用请求进行多级匹配判定,以进行分流分级代理转发,其中,所述多级匹配判定包括一级匹配判定和二级匹配判定。
具体地,例如可使用nginx作为代理中间件。在nginx中配置两个不同的代理服务器,对应不同的服务地址和端口号(例如与内部集成WebUI系统和外部API集成系统对接的服务地址和端口号)。两个代理服务器分别为一级代理服务器和二级代理服务器,所述一级代理服务器和二级代理服务器分别提供一级API代理服务和二级API代理服务。
图3是本发明的微服务资源调用方法的代理中间件的配置文件的一示例的示意图。
在一具体实施方式中,如图3所示,将所述代理中间件配置成两级匹配判定,即两级API代理配置(或者两层API代理配置),以形成第一级代理服务层和第二级代理服务层,并分别提供一级API代理服务和二级API代理服务。
在图3的示例中,一级API代理配置的配置文件包括服务配置(例如Web容器服务,例如调用请求http://$server1,具体可参见图4)、端口配置(例如8001)、块级指令配置(也称为API块级指令配置,分为内部的API块级指令配置和外部的API块级指令配置),所述块级指令配置具体包括规则匹配参数(例如使用location完成一级请求前缀等规则匹配参数的配置)和反向代理配置(例如使用pass_proxy的代理指向二级API代理服务器(即二级API代理服务)的相关配置,例如代理转发至${server}:8001/;代理转发至${server}:8002/等),所述规则匹配参数包括预定标识,所述预定标识用于与待处理调用请求的范围域标识进行匹配,所述预定标识例如为/inapi,/outapi等等。二级API代理配置的配置文件包括服务配置(例如http://$server2/$s0,http://$server3/$s1,http://$server4/$s2,http://$server5/$s3,http://$server6/$s4等等)、端口配置(例如8001)、块级指令配置(也称为API块级指令配置,例如为一个或多个,使用n表示个数),所述块级指令配置具体包括规则匹配参数(例如使用location完成二级请求前缀等规则匹配参数的配置)和反向代理配置(例如使用pass_proxy的代理指向微服务(例如$s0微服务下的请求接口、$s1微服务下的请求接口)的相关配置,即聚焦了业务微服务的映射代理工作,使调用请求映射到具体的微服务和接口),所述规则匹配参数包括预定标识,所述预定标识用于与待处理调用请求的范围域标识进行匹配,所述预定标识例如为/inapi,/outapi等等。其中,使用预定标识作为路由规则,在匹配成功的情况下,反向代理至二级代理服务器(即第二级代理服务层)。具体地,所述微服务例如使用$s0、$s1、$s3、$ss等等。端口配置例如为8002。
此外,所述代理中间件还包括与WebUI前端集成系统相对应的Web容器服务,即与所述Web容器服务对应的配置文件,以使待处理调用请求(即api请求)和webui服务处于同一个数据服务域内,能够解决跨域问题。
需要说明的是,在本实施方式中,提供一级API代理服务和二级API代理服务,但是不限于,在其他实施方式中,还可以提供三级API代理服务或者更多级API代理服务。此外,在本实施方式中,代理中间件的第一级代理服务层配置有两个一级代理服务,所述第二级代理服务层配置有三个二级代理服务,对于一级代理服务和二级代理服务的数量没有特别限制,还可以是其他数量。
在一可选实施方式中,按照实际应用中预定历史时间段内(例如2个月、3个月、4个月或者更多个月),内部集成WebUI系统和外部API集成系统所需要的资源数量占比、使用时间长度等,重新部署代理服务层的一级代理服务和二级代理服务的部署数量,例如内部代理服务器可以部署2套,外部代理服务器部署1套。上述仅作为可选示例进行说明不能理解成对本发明的限制。
图4是图1的微服务资源调用方法的代理中间件对待处理调用请求进行分流分级代理转发的一示例的示意图。
接着,将参照图4具体说明通过所述代理中间件对所述待处理调用请求进行多级匹配判定,以进行分流分级代理转发。
具体地,先在所述第一级代理服务层进行一级匹配判定,再在所述第二级代理服务层进行二级匹配判定。
在一实施方式中,将所述待处理调用请求接入所述代理中间件的第一级代理服务层,在所述第一级代理服务层对所述待处理调用请求进行所述一级匹配判定。所述待处理调用请求可以为内网调用请求,例如为/inapi/$s0/$a,/inapi/$s1/$b,/inapi/$s2/$x,/inapi/$s2/$y,/inapi/$.../$...等等。所述待处理调用请求可以为外网调用请求,例如为/outapi/$s3/$m,/outapi/$s3/$n,/outapi/$s4/$x,/outapi/$s4/$y,/outapi/$.../$...等等,还可以为http://$server1。
具体地,将接入第一级代理服务层的待处理调用请求进行一级匹配判定,判定是否包含前置范围域标识(例如为/inapi),例如所述待处理调用请求(例如为/inapi/$s0/$a)包含/inapi,则识别出所述待处理调用请求,即识别出包含前置范围域标识的待处理调用请求,(或者,拦截包含前置范围域标识的待处理调用请求)。由此使得同时接入所述第一级代理服务层的待处理调用请求分流,具体分流成内网调用请求的数据流和外网调用请求的数据流。接着,将所识别出的待处理调用请求代理转发至所述第二级代理服务层。
而在待处理调用请求未包含前置范围域标识的情况下,则返回错误信息或无法访问等的响应信息。
进一步,经所述一级匹配判定之后,在所述第二级代理服务层对待处理调用请求(例如图4所示的http://$server2/$s0,http://$server3/$s1,http://$server5/$s3)进行所述二级匹配判定,识别出包含服务范围域标识的待处理调用请求,以使同时接入所述第二级代理服务层的待处理调用请求再分流,具体分流成与不同微服务相对应的多条数据流,所述不同微服务具体包括内部微服务集群和外部微服务集群所提供API调用的各种微服务。
在待处理调用请求包含服务范围域标识的情况下,拦截包含服务范围域标识的待处理调用请求,并将所述待处理调用请求进行再分流。而在待处理调用请求未包含服务范围域标识的情况下,则返回错误信息或无法访问等的响应信息。
例如,服务范围域标识为$s0,对所述待处理调用请求(例如为/inapi/$s0)进行二级匹配判定,在所述待处理调用请求包含服务范围域标识(即包含为$s0)的情况下,匹配到相应的微服务(与$s0相对应的微服务)。
需要说明的是,上述仅作为可选示例进行说明,不能理解成对本发明的限制。
在步骤S103中,将经分流分级代理转发后的待处理调用请求接入业务服务层以进行微服务资源调用,并返回与所述待处理调用请求相对应的微服务资源。
具体地,经所述代理中间件的二级匹配判定之后,确定所述待处理调用请求的微服务标识(例如为$s0),将所述待处理调用请求代理转发至业务服务层。
更具体地,通过确定待处理调用请求中的URI(Uniform Resource Identifier,统一资源标识符)定位到业务服务层的具体接口(例如$s0接口对应的微服务),获取相应微服务资源并向所述待处理调用请求对应的用户端返回响应信息。
在另一示例中,如图5所示,所述微服务资源调用方法还包括对代理中间件进行保活监控管理的步骤S501。
需要说明的是,图5中的步骤S101、S102、S103与图1中的步骤S101、S102、S103大致相同,因此,省略了相同部分的说明。
在图5的示例中,所述代理中间件包括主代理中间件和从代理中间件。
具体地,例如使用keepalived作为检测件,对主代理中间件和从代理中间件两个代理中间件进行保活监控管理,并暴露虚拟IP对内和对外实现逻辑一致性访问。
可选地,通过检测件定时主代理中间件和从代理中间件发送信号,来检测所述主代理中间件和从代理中间件是否出现接收异常等的故障情况。
在检测到所述代理中间件中的主代理中间件或从代理中间件出现故障时,自动将待处理调用请求接入没有故障的从代理中间件或主代理中间件,即在使用状态,能够一直保证有一个代理中间件可正常完成分流分级代理转发。
通过检测件对代理中间件(具体为主代理中间件和从代理中间件)进行保活监控管理,能够有效保证代理中间件的多级代理转发功能,能够实现高可用性。
需要说明的是,上述仅作为可选示例进行说明,不能理解成对本发明的限制。
与现有技术相比,本发明实施例提供的微服务资源调用方法通过对代理中间件服务器进行分层设计,不同层的服务器各司其职,达到功能解耦的目的。通过代理中间件接入待处理调用请求,无需在用户界面配置与不同微服务相对应的调用接口进而大大降低了配置复杂度,使待处理调用请求(即api请求)和webui服务处于同一个数据服务域内,能够在解决跨域问题的同时,将待处理调用请求分流到相应的微服务,能够实现请求资源的跨域,同时能够保证微服务的业务独立性,能够提高调用效率,能够极大降低配置复杂度,能够使相关集成模块进一步解耦,还能够使各微服务的可维护性明显提高。
此外,本发明的微服务资源调用方法特别适用于企业集成应用系统与外部集成应用并存的数量超过一定量的多个集成应用系统在调用多种微服务资源的应用场景。具体通过代理中间件的第一级API代理服务层接入待处理调用请求,使api请求和webui服务处于同一个数据服务域内,能够在解决跨域问题的同时,经一级匹配判定进行分流,通过在第二级API代理服务层配置业务微服务的映射代理工作,并进行二级匹配判定,使识别出的待处理调用请求代理转发至业务服务层,使得后端服务不需要任何编码即可实现请求资源的跨域,同时能够保证各微服务的业务独立性,能够极大降低配置复杂度。
此外,通过检测件对代理中间件(具体为主代理中间件和从代理中间件)进行保活监控管理,能够有效保证代理中间件的多级代理转发功能,能够实现高可用性。
下述为本发明系统实施例,可以用于执行本发明方法实施例。对于本发明系统实施例中未披露的细节,请参照本发明方法实施例。
图6是根据本发明的微服务资源调用系统的一示例的结构示意图。
参照图6,本公开第二方面提供一种微服务资源调用系统,采用本发明所述的微服务资源调用方法进行数据调用,所述微服务资源调用系统包括:集成应用层,包括多个不同的集成应用系统;代理服务层,包括多级代理服务层,具体包括与一级代理服务和二级代理服务相对应的第一级代理服务层和第二级代理服务层,所述第一级代理服务层用于一级匹配判定,所述第二级代理服务用于二级匹配判定;业务服务层,包括可提供API调用服务的内部微服务集群和外部微服务集群,所述内部微服务集群(例如图6所示的子系统A)和外部微服务集群(图6所示的子系统X)用于接入经所述分流分级代理转发的调用请求,其中,所述子系统A包括微服务1、微服务2...微服务n等,n为正整数;所述子系统X包括微服务1、微服务2...微服务n等,n为正整数。
在一具体实施方式中,例如集成应用层包括多个集成应用系统,具体包括内部集成WebUI系统和外部API集成系统。
根据可选的实施方式,所述微服务资源调用系统还包括配置模块,所述配置模块用于配置所述代理中间件的多个一级代理服务和多个二级代理服务,以形成第一级代理服务层和第二级代理服务层;先在所述第一级代理服务层进行一级匹配判定,再在所述第二级代理服务层进行二级匹配判定。代理中间件也可以充当web容器,将内部集成WebUI系统在代理中间件进行服务配置,保持该web服务与一级代理服务是同一服务,即内部集成WebUI系统与进入到一级代理服务中的待处理调用请求处于同一域名服务,能够解决跨域问题。
此外,所述代理中间件还为内部集成WebUI系统和外部API集成系统通过VIP虚拟地址提供对接接口,并为代理服务层提供与该对接接口相对应的接口(例如VIP虚拟地址)。
需要说明的是,在webui前端系统中全局配置,针对提供不同API能力来源的前置范围域标识: /inapi和/outapi,其中,使用/inapi表示内部微服务提供API能力的前置范围域标识;使用/outapi表示外部微服务提供API能力的前置范围域标识。通过全局配置该标识,简化系统后端配置编程难度。WebUI前端系统的各调用请求的字面形式均可根据实际情况这两种标识作为前缀进行编程。
此外,一级API代理服务,按范围域标识分层:对API资源进行代理划分和代理资源分配,比如对内部API和外部API(即与内部集成WebUI系统和外部API集成系统对应)。二级API代理服务,按服务域标识分层:不同的微服务团队可以进行独立代理内容的配置和维护。不同的微服务团队仅需要创建并维护自己的二级代理服务的配置文件即可,能够实现高度解耦。最终,代理中间件的配置文件中通过配置“包含”各拆分的独立配置文件,完成各配置模块的整合。
可选地,按照实际应用中预定历史时间段内,内部集成WebUI系统和外部API集成系统所需要的资源数量占比、使用时间长度等,重新部署代理服务层的一级代理服务和二级代理服务的部署数量,例如内部代理服务器可以部署2套,外部代理服务器部署1套。
根据可选的实施方式,将所述待处理调用请求接入所述代理中间件的第一级代理服务层,在所述第一级代理服务层对所述待处理调用请求进行所述一级匹配判定,识别出包含前置范围域标识的待处理调用请求,以使同时接入所述第一级代理服务层的待处理调用请求分流,并将所识别出的待处理调用请求代理转发至所述第二级代理服务层。
根据可选的实施方式,经所述一级匹配判定之后,在所述第二级代理服务层对待处理调用请求进行所述二级匹配判定,识别出包含服务范围域标识的待处理调用请求,以使同时接入所述第二级代理服务层的待处理调用请求再分流。
根据可选的实施方式,经所述二级匹配判定之后,确定所述待处理调用请求的微服务标识,并将所述待处理调用请求代理转发至与所述微服务标识相对应的微服务。
根据可选的实施方式,所述代理中间件包括主代理中间件和从代理中间件。
根据可选的实施方式,通过检测件对所述主代理中间件和所述从代理中间件进行保活监控管理;在检测到所述代理中间件中的主代理中间件或从代理中间件出现故障时,自动将待处理调用请求接入没有故障的从代理中间件或主代理中间件。
根据可选的实施方式,接收内网应用集成系统的用户界面上的内网调用请求;和/或接收外部API集成系统的外网调用请求。
需要说明的是,由于本实施例中的微服务资源调用系统所执行的微服务资源调用方法与上述实施例中的微服务资源调用方法大致相同,因此,省略了对相同部分的说明。
与现有技术相比,本发明实施例提供的微服务资源调用系统通过对代理中间件服务器进行分层设计,不同层的服务器各司其职,达到功能解耦的目的。通过代理中间件接入待处理调用请求,无需在用户界面配置与不同微服务相对应的调用接口进而大大降低了配置复杂度,使待处理调用请求(即api请求)和webui服务处于同一个数据服务域内,能够在解决跨域问题的同时,将待处理调用请求分流到相应的微服务,能够实现请求资源的跨域,同时能够保证微服务的业务独立性,能够提高调用效率,能够极大降低配置复杂度,能够使相关集成模块进一步解耦,还能够使各微服务的可维护性明显提高。
此外,本发明的微服务资源调用方法特别适用于企业集成应用系统与外部集成应用并存的数量超过一定量的多个集成应用系统在调用多种微服务资源的应用场景。具体通过代理中间件的第一级API代理服务层接入待处理调用请求,使待处理调用请求(即api请求)和webui服务处于同一个数据服务域内,能够在解决跨域问题的同时,经一级匹配判定进行分流,通过在第二级API代理服务层配置业务微服务的映射代理工作,并进行二级匹配判定,使识别出的待处理调用请求代理转发至业务服务层,使得后端服务不需要任何编码即可实现请求资源的跨域,同时能够保证各微服务的业务独立性,能够极大降低配置复杂度。
此外,通过检测件对代理中间件(具体为主代理中间件和所述从代理中间件)进行保活监控管理,能够有效保证代理中间件的多级代理转发功能,能够实现高可用性。
图7是根据本发明的电子设备实施例的结构示意图。
如图7所示,电子设备以通用计算设备的形式表现。其中处理器可以是一个,也可以是多个并且协同工作。本发明也不排除进行分布式处理,即处理器可以分散在不同的实体设备中。本发明的电子设备并不限于单一实体,也可以是多个实体设备的总和。
所述存储器存储有计算机可执行程序,通常是机器可读的代码。所述计算机可读程序可以被所述处理器执行,以使得电子设备能够执行本发明的方法,或者所述方法中的至少部分步骤。
所述存储器包括易失性存储器,例如随机存取存储单元(RAM)和/或高速缓存存储单元,还可以是非易失性存储器,如只读存储单元(ROM)。
可选的,该实施例中,电子设备还包括有I/O接口,其用于电子设备与外部的设备进行数据交换。I/O接口可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
应当理解,图7显示的电子设备仅仅是本发明的一个示例,本发明的电子设备中还可以包括上述示例中未示出的元件或组件。例如,有些电子设备中还包括有显示屏等显示单元,有些电子设备还包括人机交互元件,例如按钮、键盘等。只要该电子设备能够执行存储器中的计算机可读程序以实现本发明方法或方法的至少部分步骤,均可认为是本发明所涵盖的电子设备。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,如图8所示,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干命令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明实施方式的上述方法。
所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现本公开的数据交互方法。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干命令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本发明实施例的方法。
以上具体地示出和描述了本发明的示例性实施例。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (10)
1.一种基于代理中间件的微服务资源调用方法,其特征在于,包括:
接收待处理调用请求,所述待处理调用请求包括内网调用请求和外网调用请求,所述待处理调用请求包括范围域标识、待访问微服务资源;
将所述待处理调用请求接入代理中间件,通过所述代理中间件依次对所述待处理调用请求进行多级匹配判定,以进行分流分级代理转发,其中,所述多级匹配判定包括一级匹配判定和二级匹配判定;
将经分流分级代理转发后的待处理调用请求接入业务服务层以进行微服务资源调用,并返回与所述待处理调用请求相对应的微服务资源。
2.根据权利要求1所述的微服务资源调用方法,其特征在于,所述进行多级匹配判定包括:
配置所述代理中间件的多个一级代理服务和多个二级代理服务,以形成第一级代理服务层和第二级代理服务层;
先在所述第一级代理服务层进行一级匹配判定,再在所述第二级代理服务层进行二级匹配判定。
3.根据权利要求2所述的微服务资源调用方法,其特征在于,
将所述待处理调用请求接入所述代理中间件的第一级代理服务层,在所述第一级代理服务层对所述待处理调用请求进行所述一级匹配判定,识别出包含前置范围域标识的待处理调用请求,以使同时接入所述第一级代理服务层的待处理调用请求分流,并将所识别出的待处理调用请求代理转发至所述第二级代理服务层。
4.根据权利要求2所述的微服务资源调用方法,其特征在于,
经所述一级匹配判定之后,在所述第二级代理服务层对待处理调用请求进行所述二级匹配判定,识别出包含服务范围域标识的待处理调用请求,以使同时接入所述第二级代理服务层的待处理调用请求再分流。
5.根据权利要求4所述的微服务资源调用方法,其特征在于,
经所述二级匹配判定之后,确定所述待处理调用请求的微服务标识,并将所述待处理调用请求代理转发至与所述微服务标识相对应的微服务。
6.根据权利要求1所述的微服务资源调用方法,其特征在于,
所述代理中间件包括主代理中间件和从代理中间件。
7.根据权利要求6所述的微服务资源调用方法,其特征在于,
通过检测件对所述主代理中间件和所述从代理中间件进行保活监控管理;
在检测到所述代理中间件中的主代理中间件或从代理中间件出现故障时,自动将待处理调用请求接入没有故障的从代理中间件或主代理中间件。
8.根据权利要求1所述的微服务资源调用方法,其特征在于,
接收内网应用集成系统的用户界面上的内网调用请求;和/或
接收外部API集成系统的外网调用请求。
9.一种微服务资源调用系统,采用权利要求1至8中任一项所述的微服务资源调用方法进行数据调用,其特征在于,所述微服务资源调用系统包括:
集成应用层,包括多个不同的集成应用系统;
代理服务层,包括多级代理服务层,具体包括与一级代理服务和二级代理服务相对应的第一级代理服务层和第二级代理服务层,所述第一级代理服务层用于一级匹配判定,所述第二级代理服务用于二级匹配判定;
业务服务层,包括可提供API调用服务的内部微服务集群和外部微服务集群,所述内部微服务集群和外部微服务集群用于接入经所述分流分级代理转发的调用请求。
10.根据权利要求9所述的微服务资源调用系统,其特征在于,所述微服务资源调用系统还包括配置模块,
所述配置模块用于配置所述代理中间件的多个一级代理服务和多个二级代理服务,以形成第一级代理服务层和第二级代理服务层;
先在所述第一级代理服务层进行一级匹配判定,再在所述第二级代理服务层进行二级匹配判定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310279721.XA CN115988080B (zh) | 2023-03-22 | 2023-03-22 | 一种基于代理中间件的微服务资源调用方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310279721.XA CN115988080B (zh) | 2023-03-22 | 2023-03-22 | 一种基于代理中间件的微服务资源调用方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115988080A true CN115988080A (zh) | 2023-04-18 |
CN115988080B CN115988080B (zh) | 2023-06-13 |
Family
ID=85970572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310279721.XA Active CN115988080B (zh) | 2023-03-22 | 2023-03-22 | 一种基于代理中间件的微服务资源调用方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115988080B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491801A (zh) * | 2018-09-27 | 2019-03-19 | 平安科技(深圳)有限公司 | 微服务访问调度方法、装置、介质及电子设备 |
CN109639572A (zh) * | 2018-12-06 | 2019-04-16 | 网易(杭州)网络有限公司 | 路由管理方法、装置及微服务系统 |
CN111200655A (zh) * | 2019-12-31 | 2020-05-26 | 北京奇才天下科技有限公司 | 一种基于代理服务器的内网访问方法、系统、电子设备 |
US20210075877A1 (en) * | 2019-09-05 | 2021-03-11 | Ciena Corporation | Managing a distributed microservice architecture as a monolithic distribution |
CN112714194A (zh) * | 2021-03-26 | 2021-04-27 | 南京美乐威电子科技有限公司 | 一种外网主机访问内网设备的方法和网络拓扑结构 |
CN113760311A (zh) * | 2021-08-25 | 2021-12-07 | 山东浪潮通软信息科技有限公司 | 一种微服务部署方法、设备及介质 |
CN113946328A (zh) * | 2021-10-18 | 2022-01-18 | 泰康保险集团股份有限公司 | 业务处理方法及系统、存储介质和电子设备 |
CN114710551A (zh) * | 2022-03-01 | 2022-07-05 | 江西山水光电科技股份有限公司 | 一种基于多层动态网关的社区微服务云平台架构方法 |
CN115225707A (zh) * | 2021-04-16 | 2022-10-21 | 腾讯科技(深圳)有限公司 | 资源访问方法及装置 |
-
2023
- 2023-03-22 CN CN202310279721.XA patent/CN115988080B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491801A (zh) * | 2018-09-27 | 2019-03-19 | 平安科技(深圳)有限公司 | 微服务访问调度方法、装置、介质及电子设备 |
CN109639572A (zh) * | 2018-12-06 | 2019-04-16 | 网易(杭州)网络有限公司 | 路由管理方法、装置及微服务系统 |
US20210075877A1 (en) * | 2019-09-05 | 2021-03-11 | Ciena Corporation | Managing a distributed microservice architecture as a monolithic distribution |
CN111200655A (zh) * | 2019-12-31 | 2020-05-26 | 北京奇才天下科技有限公司 | 一种基于代理服务器的内网访问方法、系统、电子设备 |
CN112714194A (zh) * | 2021-03-26 | 2021-04-27 | 南京美乐威电子科技有限公司 | 一种外网主机访问内网设备的方法和网络拓扑结构 |
CN115225707A (zh) * | 2021-04-16 | 2022-10-21 | 腾讯科技(深圳)有限公司 | 资源访问方法及装置 |
CN113760311A (zh) * | 2021-08-25 | 2021-12-07 | 山东浪潮通软信息科技有限公司 | 一种微服务部署方法、设备及介质 |
CN113946328A (zh) * | 2021-10-18 | 2022-01-18 | 泰康保险集团股份有限公司 | 业务处理方法及系统、存储介质和电子设备 |
CN114710551A (zh) * | 2022-03-01 | 2022-07-05 | 江西山水光电科技股份有限公司 | 一种基于多层动态网关的社区微服务云平台架构方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115988080B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11700296B2 (en) | Client-directed placement of remotely-configured service instances | |
US10560465B2 (en) | Real time anomaly detection for data streams | |
US11714686B2 (en) | Resource oversubscription based on utilization patterns in computing systems | |
US20190068690A1 (en) | Automated management of resource attributes across network-based services | |
US10257115B2 (en) | Cloud-based service resource provisioning based on network characteristics | |
US7490265B2 (en) | Recovery segment identification in a computing infrastructure | |
CN110062043B (zh) | 服务治理方法、服务治理装置、存储介质及电子设备 | |
US20100050173A1 (en) | Provisioning Virtual Resources Using Name Resolution | |
US10375072B2 (en) | Dashboard as remote computing services | |
US11595299B2 (en) | System and method of suppressing inbound payload to an integration flow of an orchestration based application integration | |
CN114172966B (zh) | 单元化架构下的服务调用方法、服务处理方法及装置 | |
US11552868B1 (en) | Collect and forward | |
CN114371914A (zh) | 容器ip地址配置方法、装置、存储介质及电子设备 | |
US7543300B2 (en) | Interface for application components | |
US20220385596A1 (en) | Protecting integration between resources of different services using service-generated dependency tags | |
CN115988080B (zh) | 一种基于代理中间件的微服务资源调用方法和系统 | |
US8650548B2 (en) | Method to derive software use and software data object use characteristics by analyzing attributes of related files | |
US11366734B2 (en) | Identification of log events for computing systems | |
US11258860B2 (en) | System and method for bot detection and classification | |
US10684898B2 (en) | In-line event handlers across domains | |
US10901708B1 (en) | Techniques for unsupervised learning embeddings on source code tokens from non-local contexts | |
CN115516842A (zh) | 编排代理服务 | |
US11968279B1 (en) | Data streaming service with virtualized broker clusters | |
CN114553492B (zh) | 基于云平台的操作请求处理方法及装置 | |
US11831516B2 (en) | Logical grouping of network resources and control at scale |
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 |