CN112118184A - 网关自动路由方法及装置、存储介质、计算机设备 - Google Patents
网关自动路由方法及装置、存储介质、计算机设备 Download PDFInfo
- Publication number
- CN112118184A CN112118184A CN202010782181.3A CN202010782181A CN112118184A CN 112118184 A CN112118184 A CN 112118184A CN 202010782181 A CN202010782181 A CN 202010782181A CN 112118184 A CN112118184 A CN 112118184A
- Authority
- CN
- China
- Prior art keywords
- service
- interface
- instance
- routing
- routing rule
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
- H04L41/0886—Fully automatic configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Abstract
本申请公开了一种网关自动路由方法及装置、存储介质、计算机设备,该方法包括:调用网关的注册中心拉取已注册服务的服务实例列表;在所述服务实例列表中分别获取每个所述已注册服务对应的目标实例以及所述目标实例对应的路由暴露接口,并访问所述路由暴露接口;接收所述路由暴露接口的返回数据,并根据所述返回数据携带的接口路径信息,确定每个所述已注册服务的路由规则,其中,所述路由规则用于指导服务请求的执行。本申请相比于现有技术中需要人为主动配置网关的路由规则导致测试时容易引起的配置文件杂乱无章和人为配置容易出错的问题,提供了上述的可以自动配置路由规则的方法,节约了路由规则配置时间,降低了测试和运维成本。
Description
技术领域
本申请涉及通信技术领域,尤其是涉及到一种网关自动路由方法及装置、存储介质、计算机设备。
背景技术
在微服务架构下,网关负责根据路由规则将服务请求转发给正确的微服务组件处理。在迭代开发的测试环节中,网关是通过主动配置的方式来配置某path需要路由到哪个服务,每次测试的时候都需要找运维人员进行路由规则配置,导致配置文件杂乱无章,容易出错,配置成本高,效率低。
发明内容
有鉴于此,本申请提供了一种网关自动路由方法及装置、存储介质、计算机设备。
根据本申请的一个方面,提供了一种网关自动路由方法,包括:
调用网关的注册中心拉取已注册服务的服务实例列表;
在所述服务实例列表中分别获取每个所述已注册服务对应的目标实例以及所述目标实例对应的路由暴露接口,并访问所述路由暴露接口;
接收所述路由暴露接口的返回数据,并根据所述返回数据携带的接口路径信息,确定每个所述已注册服务的路由规则,其中,所述路由规则用于指导服务请求的执行。
具体地,所述接收所述路由暴露接口的返回数据,具体包括:
若访问所述路由暴露接口成功,则接收所述路由暴露接口的返回数据;
若访问所述路由暴露接口失败,则在所述服务实例列表中获取相应已注册服务的新的目标实例以及所述新的目标实例对应的路由暴露接口,并访问所述路由暴露接口,直至访问所述路由暴露接口成功接收到所述路由暴露接口的返回数据为止。
具体地,所述根据所述返回数据携带的接口路径信息,确定每个所述已注册服务的路由规则,具体包括:
根据所述返回数据,生成所述已注册服务对应的路由列表,并将所述路由列表注册到本地的路由源信息表中;
根据所述路由源信息表生成每个所述已注册服务的路由规则,并注册相应的路由规则表。
具体地,所述返回数据还携带有接口路径的鉴权信息;所述注册相应的路由规则表,具体包括:
根据所述路由规则、所述接口路径的鉴权信息以及预设配置规则,注册所述路由规则表,其中,所述路由规则表中的每条路由规则对应有包含所述鉴权信息以及所述预设配置规则的访问插件链。
具体地,所述注册所述路由规则表之后,所述方法还包括:
接收服务请求,并获取所述服务请求携带的访问接口路径信息;
若所述访问接口路径信息存在于所述路由规则表中,则执行与所述访问接口路径信息对应的访问插件链,以使所述服务请求转发到相应的服务中;
若所述访问接口路径信息不存在于所述路由规则表中,则向所述服务请求对应的客户端返回错误提示信息。
具体地,所述注册所述路由规则表之后,所述方法还包括:
当所述服务实例列表发生变更时,获取变更服务对应的变更实例以及所述变更实例对应的路由暴露接口,并访问所述变更实例对应的路由暴露接口;
接收所述变更实例对应的路由暴露接口的返回数据,并获取所述路由源信息表中与所述变更服务对应的原始接口路径信息;
比对所述原始接口路径信息与所述变更实例对应的路由暴露接口的返回数据携带的变更接口路径信息的一致性,并在二者不一致时根据所述变更接口路径信息对所述路由源信息表进行变更;
根据变更后的路由源信息表生成每个所述已注册服务的路由规则,并注册相应的路由规则表。
具体地,所述调用网关的注册中心拉取已注册服务的服务实例列表之后,所述方法还包括:
将所述服务实例列表保存到本地;
所述获取变更服务对应的变更实例以及所述变更实例对应的路由暴露接口之前,所述方法还包括:
调用所述网关的注册中心再次拉取服务实例列表,若再次拉取到的服务实例列表与本地保存的服务实例列表不同,则确定所述服务实例列表发生变更。
根据本申请的另一方面,提供了一种网关自动路由装置,包括:
第一实例列表拉取模块,用于调用网关的注册中心拉取已注册服务的服务实例列表;
第一实例访问模块,用于在所述服务实例列表中分别获取每个所述已注册服务对应的目标实例以及所述目标实例对应的路由暴露接口,并访问所述路由暴露接口;
第一路由规则确定模块,用于接收所述路由暴露接口的返回数据,并根据所述返回数据携带的接口路径信息,确定每个所述已注册服务的路由规则,其中,所述路由规则用于指导服务请求的执行。
具体地,所述第一路由规则确定模块,具体包括:
第一返回数据接收单元,用于若访问所述路由暴露接口成功,则接收所述路由暴露接口的返回数据;
第二返回数据接收单元,用于若访问所述路由暴露接口失败,则在所述服务实例列表中获取相应已注册服务的新的目标实例以及所述新的目标实例对应的路由暴露接口,并访问所述路由暴露接口,直至访问所述路由暴露接口成功接收到所述路由暴露接口的返回数据为止。
具体地,所述第一路由规则确定模块,具体包括:
信息表注册单元,用于根据所述返回数据,生成所述已注册服务对应的路由列表,并将所述路由列表注册到本地的路由源信息表中;
路由规则生成单元,用于根据所述路由源信息表生成每个所述已注册服务的路由规则,并注册相应的路由规则表。
具体地,所述返回数据还携带有接口路径的鉴权信息;所述路由规则生成单元,具体用于:
根据所述路由规则、所述接口路径的鉴权信息以及预设配置规则,注册所述路由规则表,其中,所述路由规则表中的每条路由规则对应有包含所述鉴权信息以及所述预设配置规则的访问插件链。
具体地,所述装置还包括:
服务请求接收模块,用于注册所述路由规则表之后,接收服务请求,并获取所述服务请求携带的访问接口路径信息;
插件链执行模块,用于若所述访问接口路径信息存在于所述路由规则表中,则执行与所述访问接口路径信息对应的访问插件链,以使所述服务请求转发到相应的服务中;
错误提示模块,用于若所述访问接口路径信息不存在于所述路由规则表中,则向所述服务请求对应的客户端返回错误提示信息。
具体地,所述装置还包括:
第二实例访问模块,用于注册所述路由规则表之后,当所述服务实例列表发生变更时,获取变更服务对应的变更实例以及所述变更实例对应的路由暴露接口,并访问所述变更实例对应的路由暴露接口;
返回数据接收模块,用于接收所述变更实例对应的路由暴露接口的返回数据,并获取所述路由源信息表中与所述变更服务对应的原始接口路径信息;
信息表变更模块,用于比对所述原始接口路径信息与所述变更实例对应的路由暴露接口的返回数据携带的变更接口路径信息的一致性,并在二者不一致时根据所述变更接口路径信息对所述路由源信息表进行变更;
第二路由规则确定模块,用于根据变更后的路由源信息表生成每个所述已注册服务的路由规则,并注册相应的路由规则表。
具体地,所述装置还包括:
实例列表保存模块,用于调用网关的注册中心拉取已注册服务的服务实例列表之后,将所述服务实例列表保存到本地;
实例列表变更确定模块,用于获取变更服务对应的变更实例以及所述变更实例对应的路由暴露接口之前,调用所述网关的注册中心再次拉取服务实例列表,若再次拉取到的服务实例列表与本地保存的服务实例列表不同,则确定所述服务实例列表发生变更。
依据本申请又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述网关自动路由方法。
依据本申请再一个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述网关自动路由方法。
借由上述技术方案,本申请提供的一种网关自动路由方法及装置、存储介质、计算机设备,调用网关的注册中心拉取服务实例列表,在实例列表中分别选择每个服务对应的任意一个目标实例,并对该目标实例的路由暴露接口进行访问,从而基于接口访问的返回数据携带的接口路径信息建立该服务的路由规则,并将路由规则注册到网关的路由规则表中,使得后续网关可以基于该路由规则将服务请求路由到相应的服务实例中实现服务功能。本申请实施例相比于现有技术中需要人为主动配置网关的路由规则导致测试时容易引起的配置文件杂乱无章和人为配置容易出错的问题,提供了上述的可以自动配置路由规则的方法,节约了路由规则配置时间,降低了测试和运维成本,提升了网关的安全性。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请实施例提供的一种网关自动路由方法的流程示意图;
图2示出了本申请实施例提供的另一种网关自动路由方法的流程示意图;
图3示出了本申请实施例提供的另一种网关自动路由方法的流程示意图;
图4示出了本申请实施例提供的另一种网关自动路由方法的流程示意图;
图5示出了本申请实施例提供的一种网关自动路由装置的结构示意图;
图6示出了本申请实施例提供的另一种网关自动路由装置的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在本实施例中提供了一种网关自动路由方法,如图1所示,该方法包括:
步骤101,调用网关的注册中心拉取已注册服务的服务实例列表;
步骤102,在服务实例列表中分别获取每个已注册服务对应的目标实例以及目标实例对应的路由暴露接口,并访问路由暴露接口;
步骤103,接收路由暴露接口的返回数据,并根据返回数据携带的接口路径信息,确定每个已注册服务的路由规则,其中,路由规则用于指导服务请求的执行。
本申请实施例可以实现对路由规则进行自动配置,从而在自动配置路由规则后可以根据该路由规则将服务请求自动路由到相应的服务中实现服务功能。路由规则的自动配置方法如下:当网关启动时,调用网关的注册中心,从注册中心拉取该网关中已注册的全部业务服务对应的服务实例列表,并将拉取到的服务实例列表保存到本地内存中,该服务实例列表中应包含服务的IP,端口等服务信息,该列表可以保存为Map<String,List<InstanceInfo>>;然后遍历该服务实例列表,针对列表中的每个服务,使用轮询的方式选择每个服务对应的一个实例,将所选的实例作为目标实例,而后访问该目标实例对应的路由暴露接口/api/paths;进一步,接收该接口访问的返回数据,返回数据中包含该服务所有能够被分割为的接口路径信息URL,以及每个接口路径的鉴权信息即该接口路径是否需要鉴权,以及该路径的类型,利用返回数据中携带的上述信息建立每个服务下所有可访问URL的路由列表,并将该路由列表注册到本地的路由源信息表中;最后根据本地的路由源信息表生成对应的路由规则,并将路由规则注册到路由规则表中,后续在接收到服务请求之后可以根据路由规则表实现将服务请求路由到相应服务中。具体的,服务请求是指请求服务实例提供相应的功能服务的请求,比如在服务架构下,批改实例提供批改的功能服务,打印实例提供打印功能服务,查询实例提供数据查询功能服务。如果需要进行数据查询,则可以向网关发送服务请求,服务请求中包含有接口路径,根据接口路径,在上述的路由规则表中可以匹配到相应的查询实例,将服务请求转发给该查询实例即可提供查询服务。
通过应用本实施例的技术方案,调用网关的注册中心拉取服务实例列表,在实例列表中分别选择每个服务对应的任意一个目标实例,并对该目标实例的路由暴露接口进行访问,从而基于接口访问的返回数据携带的接口路径信息建立该服务的路由规则,并将路由规则注册到网关的路由规则表中,使得后续网关可以基于该路由规则将服务请求路由到相应的服务实例中实现服务功能。本申请实施例相比于现有技术中需要人为主动配置网关的路由规则导致测试时容易引起的配置文件杂乱无章和人为配置容易出错的问题,提供了上述的可以自动配置路由规则的方法,节约了路由规则配置时间,降低了测试和运维成本,提升了网关的安全性。
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,提供了另一种网关自动路由方法,如图2所示,该方法包括:
步骤201,调用网关的注册中心拉取已注册服务的服务实例列表;
步骤202,在服务实例列表中分别获取每个已注册服务对应的目标实例以及目标实例对应的路由暴露接口,并访问路由暴露接口;
步骤203,若访问路由暴露接口成功,则接收路由暴露接口的返回数据;
步骤204,若访问路由暴露接口失败,则在服务实例列表中获取相应已注册服务的新的目标实例以及新的目标实例对应的路由暴露接口,并访问路由暴露接口,直至访问路由暴露接口成功接收到路由暴露接口的返回数据为止;
步骤205,根据返回数据,生成已注册服务对应的路由列表,并将路由列表注册到本地的路由源信息表中;
步骤206,根据路由源信息表生成每个已注册服务的路由规则,并注册相应的路由规则表。
在上述实施例中,为了自动生成路由规则,首先,在网关启动时,调用网关的注册中心拉取网关已注册服务的服务实例列表,该列表中可以包含网关中注册的全部服务,以及每个服务对应的实例;其次,获取到服务实例列表以后,针对于列表中的任意一个服务,先选择该服务下的一个实例作为目标实例,并访问该目标实例对应的路由暴露接口;再次,如果访问路由暴露接口成功则接收返回数据,如果本次访问失败则返回到目标实例选择的步骤中重新选择该服务下与原来的目标实例不同的一个其他实例作为新的目标实例,并继续访问新的目标实例对应的路由暴露接口,直到对该服务下的某个实例对应的路由暴露接口访问成功为止,例如服务实例列表中包含查询服务,查询服务对应有5个查询服务实例,先选择第一个查询服务实例作为查询服务对应的目标实例,并访问该第一个查询服务实例对应的路由暴露接口,如果访问成功则接收返回数据,并将返回数据作为查询服务的路由规则建立依据以便后续建立网关的路由规则,如果访问失败则再选择第二个查询服务实例作为查询服务对应的目标实例,并访问该第二个查询服务实例对应的路由暴露接口,直到这5个查询服务实例中的任意一个对应的路由暴露接口能够访问成功得到查询服务对应的接口返回数据;然后,再按照上述方法继续获取服务实例列表中全部服务的接口返回数据;最后,在获取到服务实例列表中全部服务的接口返回数据之后,可以根据每个服务对应的返回数据建立相应路由规则,具体来说,基于返回数据先得到相应服务下所有可访问的路由列表,然后注册到本地的路由源信息表中,并基于路由源信息表生成对应的路由规则,路由规则可以以插件链的形式提供,每条路由规则插件链包含该接口路径对应的鉴权信息、限流信息以及统计信息等插件。路由规则表注册成功后,网关就可以正式对外提供服务了,不需要人工再对路由规则进行配置。
为了在服务变更时能够及时对路有规则进行相应变更,本申请实施例还提供了另一种网关自动路由方法,如图3所示,该方法包括:
步骤301,调用网关的注册中心拉取已注册服务的服务实例列表;
步骤302,将服务实例列表保存到本地;
步骤303,在服务实例列表中分别获取每个已注册服务对应的目标实例以及目标实例对应的路由暴露接口,并访问路由暴露接口;
步骤304,若访问路由暴露接口成功,则接收路由暴露接口的返回数据;
步骤305,若访问路由暴露接口失败,则在服务实例列表中获取相应已注册服务的新的目标实例以及新的目标实例对应的路由暴露接口,并访问路由暴露接口,直至访问路由暴露接口成功接收到路由暴露接口的返回数据为止;
步骤306,根据返回数据,生成已注册服务对应的路由列表,并将路由列表注册到本地的路由源信息表中;
步骤307,根据路由源信息表生成每个已注册服务的路由规则,并注册相应的路由规则表;
步骤308,调用网关的注册中心再次拉取服务实例列表,若再次拉取到的服务实例列表与本地保存的服务实例列表不同,则确定服务实例列表发生变更;
步骤309,当服务实例列表发生变更时,获取变更服务对应的变更实例以及变更实例对应的路由暴露接口,并访问变更实例对应的路由暴露接口;
步骤310,接收变更实例对应的路由暴露接口的返回数据,并获取路由源信息表中与变更服务对应的原始接口路径信息;
步骤311,比对原始接口路径信息与变更实例对应的路由暴露接口的返回数据携带的变更接口路径信息的一致性,并在二者不一致时根据变更接口路径信息对路由源信息表进行变更;
步骤312,根据变更后的路由源信息表生成每个已注册服务的路由规则,并注册相应的路由规则表。
在上述实施例中,在如图2所示的方法基础上,为了及时发现服务实例的变更,拉取到服务实例列表之后,将服务实例列表保存到本地,而后可以周期性的不断从注册中心拉取服务实例列表,并将新拉取的列表与本地保存的列表进行比对,如果本次没有发现列表有变更,则继续周期性的拉取服务实例列表,如果发现列表有变更,则进入步骤309,获取服务实例列表中的变更服务,变更服务一般是指存在实例新增、修改、删除的服务,获取变更实例并访问变更实例对应的路由暴露接口。例如在原始的服务实例列表中查询服务对应的实例包括5个,变更后的服务实例列表中查询服务对应的实例除了原有的5个以外又新增了5个,那么可以在新增的5个实例中任意获取一个并访问该实例对应的路由暴露接口。然后基于返回数据携带的接口路径信息判断相应服务的接口路径信息是否发生变化,若发生变化则基于该返回数据对路由规则进行变更,具体方式可以参照图2实施例对应的解释,在此不再赘述。另外,如果访问某个变更实例的路由暴露接口失败,可以在相应服务对应的实例中重新选择一个变更实例,并访问对应的路由暴露接口,具体方法也可以参照图2实施例对应的解释。
在本申请任一实施例中,具体地,服务请求的访问流程可以包括下述步骤,其中,下述步骤可以执行在步骤103、步骤206以及步骤312之后。
步骤401,接收服务请求,并获取服务请求携带的访问接口路径信息;
步骤402,若访问接口路径信息存在于路由规则表中,则执行与访问接口路径信息对应的访问插件链,以使服务请求转发到相应的服务中;
步骤403,若访问接口路径信息不存在于路由规则表中,则向服务请求对应的客户端返回错误提示信息。
在该实施例中,网关接收到服务请求之后,首先对服务请求中携带的访问接口路径信息进行解析获取该服务请求对应的接口路径,然后根据路由规则表中对该接口路径进行匹配,如果服务请求对应的接口路径存在于路由规则表中,则按照路由规则表中的规则进行服务请求的路由,即通过执行相应的插件链将服务请求转发到对应的服务中,而如果路由规则表中不存在与服务请求匹配的接口路径则返回404到客户端。
在一个路由规则变更的具体实施例中,路由自动发现的步骤包括:
1、服务启动单个线程,调用注册中心拉取所有业务服务的实例列表;
2、对比本地保存的服务实例列表,如果发现有变更的实例列表,则进入步骤3,否则终止;
3、遍历变更的服务列表,使用轮询的方式选择一个该服务下的实例,然后访问对应的路由暴露接口/api/paths,返回的数据包含改服务所有能够被访问的url是什么,以及每个url是否需要鉴权,是什么类型的path;
4、如果访问成功则进入步骤6,否则步骤5;
5、会轮询下一个该服务的实例,进行重试访问;
6、获取到该服务下所有可访问的路由列表,然后和本地的路由源信息表做对比,如果发现有变更,此时分为新增、修改、删除操作,此时会对路由源信息表做相应修改;
7、修改完后根据路由路由源表息表的信息,来生成对应的路由规则,并注册到路由规则表。每个规则还包含包含鉴权、限流、metrics等插件,用于控制访问执行的流程;
8、整个路由规则更新为最新。
进一步的,作为图1方法的具体实现,本申请实施例提供了一种网关自动路由装置,如图5所示,该装置包括:
第一实例列表拉取模块501,用于调用网关的注册中心拉取已注册服务的服务实例列表;
第一实例访问模块502,用于在服务实例列表中分别获取每个已注册服务对应的目标实例以及目标实例对应的路由暴露接口,并访问路由暴露接口;
第一路由规则确定模块503,用于接收路由暴露接口的返回数据,并根据返回数据携带的接口路径信息,确定每个已注册服务的路由规则,其中,路由规则用于指导服务请求的执行。
具体地,如图6所示,第一路由规则确定模块503,具体包括:
第一返回数据接收单元5031,用于若访问路由暴露接口成功,则接收路由暴露接口的返回数据;
第二返回数据接收单元5032,用于若访问路由暴露接口失败,则在服务实例列表中获取相应已注册服务的新的目标实例以及新的目标实例对应的路由暴露接口,并访问路由暴露接口,直至访问路由暴露接口成功接收到路由暴露接口的返回数据为止。
具体地,如图6所示,第一路由规则确定模块503,具体包括:
信息表注册单元5033,用于根据返回数据,生成已注册服务对应的路由列表,并将路由列表注册到本地的路由源信息表中;
路由规则生成单元5034,用于根据路由源信息表生成每个已注册服务的路由规则,并注册相应的路由规则表。
具体地,如图6所示,返回数据还携带有接口路径的鉴权信息;路由规则生成单元5034,具体用于:
根据路由规则、接口路径的鉴权信息以及预设配置规则,注册路由规则表,其中,路由规则表中的每条路由规则对应有包含鉴权信息以及预设配置规则的访问插件链。
具体地,如图6所示,该装置还包括:
服务请求接收模块504,用于注册所述路由规则表之后,接收服务请求,并获取服务请求携带的访问接口路径信息;
插件链执行模块505,用于若访问接口路径信息存在于路由规则表中,则执行与访问接口路径信息对应的访问插件链,以使服务请求转发到相应的服务中;
错误提示模块506,用于若访问接口路径信息不存在于路由规则表中,则向服务请求对应的客户端返回错误提示信息。
具体地,如图6所示,该装置还包括:
第二实例访问模块507,用于注册路由规则表之后,当服务实例列表发生变更时,获取变更服务对应的变更实例以及变更实例对应的路由暴露接口,并访问变更实例对应的路由暴露接口;
返回数据接收模块508,用于接收变更实例对应的路由暴露接口的返回数据,并获取路由源信息表中与变更服务对应的原始接口路径信息;
信息表变更模块509,用于比对原始接口路径信息与变更实例对应的路由暴露接口的返回数据携带的变更接口路径信息的一致性,并在二者不一致时根据变更接口路径信息对路由源信息表进行变更;
第二路由规则确定模块510,用于根据变更后的路由源信息表生成每个已注册服务的路由规则,并注册相应的路由规则表。
具体地,如图6所示,该装置还包括:
实例列表保存模块511,用于调用网关的注册中心拉取已注册服务的服务实例列表之后,将服务实例列表保存到本地;
实例列表变更确定模块512,用于获取变更服务对应的变更实例以及变更实例对应的路由暴露接口之前,调用网关的注册中心再次拉取服务实例列表,若再次拉取到的服务实例列表与本地保存的服务实例列表不同,则确定服务实例列表发生变更。
需要说明的是,本申请实施例提供的一种网关自动路由装置所涉及各功能单元的其他相应描述,可以参考图1至图4方法中的对应描述,在此不再赘述。
基于上述如图1至图4所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述如图1至图4所示的网关自动路由方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
基于上述如图1至图4所示的方法,以及图5至图6所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该计算机设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1至图4所示的网关自动路由方法。
可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理和保存计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现调用网关的注册中心拉取服务实例列表,在实例列表中分别选择每个服务对应的任意一个目标实例,并对该目标实例的路由暴露接口进行访问,从而基于接口访问的返回数据携带的接口路径信息建立该服务的路由规则,并将路由规则注册到网关的路由规则表中,使得后续网关可以基于该路由规则将服务请求路由到相应的服务实例中实现服务功能。本申请实施例相比于现有技术中需要人为主动配置网关的路由规则导致测试时容易引起的配置文件杂乱无章和人为配置容易出错的问题,提供了上述的可以自动配置路由规则的方法,节约了路由规则配置时间,降低了测试和运维成本,提升了网关的安全性。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (10)
1.一种网关自动路由方法,其特征在于,包括:
调用网关的注册中心拉取已注册服务的服务实例列表;
在所述服务实例列表中分别获取每个所述已注册服务对应的目标实例以及所述目标实例对应的路由暴露接口,并访问所述路由暴露接口;
接收所述路由暴露接口的返回数据,并根据所述返回数据携带的接口路径信息,确定每个所述已注册服务的路由规则,其中,所述路由规则用于指导服务请求的执行。
2.根据权利要求1所述的方法,其特征在于,所述接收所述路由暴露接口的返回数据,具体包括:
若访问所述路由暴露接口成功,则接收所述路由暴露接口的返回数据;
若访问所述路由暴露接口失败,则在所述服务实例列表中获取相应已注册服务的新的目标实例以及所述新的目标实例对应的路由暴露接口,并访问所述路由暴露接口,直至访问所述路由暴露接口成功接收到所述路由暴露接口的返回数据为止。
3.根据权利要求2所述的方法,其特征在于,所述根据所述返回数据携带的接口路径信息,确定每个所述已注册服务的路由规则,具体包括:
根据所述返回数据,生成所述已注册服务对应的路由列表,并将所述路由列表注册到本地的路由源信息表中;
根据所述路由源信息表生成每个所述已注册服务的路由规则,并注册相应的路由规则表。
4.根据权利要求3所述的方法,其特征在于,所述返回数据还携带有接口路径的鉴权信息;所述注册相应的路由规则表,具体包括:
根据所述路由规则、所述接口路径的鉴权信息以及预设配置规则,注册所述路由规则表,其中,所述路由规则表中的每条路由规则对应有包含所述鉴权信息以及所述预设配置规则的访问插件链。
5.根据权利要求4所述的方法,其特征在于,所述注册所述路由规则表之后,所述方法还包括:
接收服务请求,并获取所述服务请求携带的访问接口路径信息;
若所述访问接口路径信息存在于所述路由规则表中,则执行与所述访问接口路径信息对应的访问插件链,以使所述服务请求转发到相应的服务中;
若所述访问接口路径信息不存在于所述路由规则表中,则向所述服务请求对应的客户端返回错误提示信息。
6.根据权利要求5所述的方法,其特征在于,所述注册所述路由规则表之后,所述方法还包括:
当所述服务实例列表发生变更时,获取变更服务对应的变更实例以及所述变更实例对应的路由暴露接口,并访问所述变更实例对应的路由暴露接口;
接收所述变更实例对应的路由暴露接口的返回数据,并获取所述路由源信息表中与所述变更服务对应的原始接口路径信息;
比对所述原始接口路径信息与所述变更实例对应的路由暴露接口的返回数据携带的变更接口路径信息的一致性,并在二者不一致时根据所述变更接口路径信息对所述路由源信息表进行变更;
根据变更后的路由源信息表生成每个所述已注册服务的路由规则,并注册相应的路由规则表。
7.根据权利要求6所述的方法,其特征在于,所述调用网关的注册中心拉取已注册服务的服务实例列表之后,所述方法还包括:
将所述服务实例列表保存到本地;
所述获取变更服务对应的变更实例以及所述变更实例对应的路由暴露接口之前,所述方法还包括:
调用所述网关的注册中心再次拉取服务实例列表,若再次拉取到的服务实例列表与本地保存的服务实例列表不同,则确定所述服务实例列表发生变更。
8.一种网关自动路由装置,其特征在于,包括:
第一实例列表拉取模块,用于调用网关的注册中心拉取已注册服务的服务实例列表;
第一实例访问模块,用于在所述服务实例列表中分别获取每个所述已注册服务对应的目标实例以及所述目标实例对应的路由暴露接口,并访问所述路由暴露接口;
第一路由规则确定模块,用于接收所述路由暴露接口的返回数据,并根据所述返回数据携带的接口路径信息,确定每个所述已注册服务的路由规则,其中,所述路由规则用于指导服务请求的执行。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的网关自动路由方法。
10.一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的网关自动路由方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010782181.3A CN112118184B (zh) | 2020-08-06 | 2020-08-06 | 网关自动路由方法及装置、存储介质、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010782181.3A CN112118184B (zh) | 2020-08-06 | 2020-08-06 | 网关自动路由方法及装置、存储介质、计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112118184A true CN112118184A (zh) | 2020-12-22 |
CN112118184B CN112118184B (zh) | 2022-06-03 |
Family
ID=73799213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010782181.3A Active CN112118184B (zh) | 2020-08-06 | 2020-08-06 | 网关自动路由方法及装置、存储介质、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112118184B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112929210A (zh) * | 2021-01-25 | 2021-06-08 | 城云科技(中国)有限公司 | 在WebFlux框架搭建的网关路由应用插件的方法、系统及其应用 |
CN112929290A (zh) * | 2021-02-02 | 2021-06-08 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种限流方法、装置、系统、存储介质和设备、以及网关 |
CN113572689A (zh) * | 2021-09-24 | 2021-10-29 | 深圳市信润富联数字科技有限公司 | 微服务网关管理方法、系统、设备、可读存储介质及产品 |
CN113973129A (zh) * | 2021-09-30 | 2022-01-25 | 广西中科曙光云计算有限公司 | 一种支持多种注册中心微服务的网关 |
CN114363403A (zh) * | 2021-12-28 | 2022-04-15 | 金蝶医疗软件科技有限公司 | 服务访问方法、系统、计算机设备和存储介质 |
CN114584451A (zh) * | 2022-01-18 | 2022-06-03 | 北京智象信息技术有限公司 | 一种基于微服务环境调试内部服务接口的方法及装置 |
CN114745442A (zh) * | 2022-04-13 | 2022-07-12 | 中国银行股份有限公司 | 联机批量处理系统 |
CN114827277A (zh) * | 2022-05-06 | 2022-07-29 | 北京思特奇信息技术股份有限公司 | 基于多机房容器部署的微服务系统及方法 |
CN117081976A (zh) * | 2023-10-17 | 2023-11-17 | 建银工程咨询有限责任公司 | 网关路由的配置方法及其装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017067230A1 (zh) * | 2015-10-21 | 2017-04-27 | 中兴通讯股份有限公司 | 一种基于微服务架构扩展软件功能的方法及装置 |
CN106685943A (zh) * | 2016-12-21 | 2017-05-17 | 上海斐讯数据通信技术有限公司 | 服务器soa服务接口暴露的控制方法、系统及服务器 |
US20170201651A1 (en) * | 2016-01-13 | 2017-07-13 | Canon Kabushiki Kaisha | Information processing apparatus, control method in information processing apparatus, and image processing apparatus |
CN108156022A (zh) * | 2017-12-04 | 2018-06-12 | 北京奇艺世纪科技有限公司 | 一种服务调用方法、装置及电子设备 |
CN109446063A (zh) * | 2018-09-18 | 2019-03-08 | 深圳壹账通智能科技有限公司 | 接口测试方法、装置、计算机设备和存储介质 |
CN109842637A (zh) * | 2017-11-24 | 2019-06-04 | 武汉斗鱼网络科技有限公司 | 一种分布式服务注册方法及装置 |
CN109995713A (zh) * | 2017-12-30 | 2019-07-09 | 华为技术有限公司 | 一种微服务框架中的服务处理方法及相关设备 |
CN110008045A (zh) * | 2019-04-12 | 2019-07-12 | 深圳乐信软件技术有限公司 | 微服务的聚合方法、装置、设备及存储介质 |
CN110837424A (zh) * | 2019-10-15 | 2020-02-25 | 东软集团股份有限公司 | 服务实例确定方法、装置、存储介质及电子设备 |
CN110958306A (zh) * | 2019-11-18 | 2020-04-03 | 广西电网有限责任公司电力科学研究院 | 一种基于微服务的数据请求统一交换机制 |
CN111314141A (zh) * | 2020-02-21 | 2020-06-19 | 腾讯云计算(北京)有限责任公司 | 路由更新方法及装置 |
CN111427766A (zh) * | 2020-02-20 | 2020-07-17 | 北京齐尔布莱特科技有限公司 | 一种请求处理方法、装置和代理服务器 |
-
2020
- 2020-08-06 CN CN202010782181.3A patent/CN112118184B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017067230A1 (zh) * | 2015-10-21 | 2017-04-27 | 中兴通讯股份有限公司 | 一种基于微服务架构扩展软件功能的方法及装置 |
US20170201651A1 (en) * | 2016-01-13 | 2017-07-13 | Canon Kabushiki Kaisha | Information processing apparatus, control method in information processing apparatus, and image processing apparatus |
CN106685943A (zh) * | 2016-12-21 | 2017-05-17 | 上海斐讯数据通信技术有限公司 | 服务器soa服务接口暴露的控制方法、系统及服务器 |
CN109842637A (zh) * | 2017-11-24 | 2019-06-04 | 武汉斗鱼网络科技有限公司 | 一种分布式服务注册方法及装置 |
CN108156022A (zh) * | 2017-12-04 | 2018-06-12 | 北京奇艺世纪科技有限公司 | 一种服务调用方法、装置及电子设备 |
CN109995713A (zh) * | 2017-12-30 | 2019-07-09 | 华为技术有限公司 | 一种微服务框架中的服务处理方法及相关设备 |
CN109446063A (zh) * | 2018-09-18 | 2019-03-08 | 深圳壹账通智能科技有限公司 | 接口测试方法、装置、计算机设备和存储介质 |
CN110008045A (zh) * | 2019-04-12 | 2019-07-12 | 深圳乐信软件技术有限公司 | 微服务的聚合方法、装置、设备及存储介质 |
CN110837424A (zh) * | 2019-10-15 | 2020-02-25 | 东软集团股份有限公司 | 服务实例确定方法、装置、存储介质及电子设备 |
CN110958306A (zh) * | 2019-11-18 | 2020-04-03 | 广西电网有限责任公司电力科学研究院 | 一种基于微服务的数据请求统一交换机制 |
CN111427766A (zh) * | 2020-02-20 | 2020-07-17 | 北京齐尔布莱特科技有限公司 | 一种请求处理方法、装置和代理服务器 |
CN111314141A (zh) * | 2020-02-21 | 2020-06-19 | 腾讯云计算(北京)有限责任公司 | 路由更新方法及装置 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112929210A (zh) * | 2021-01-25 | 2021-06-08 | 城云科技(中国)有限公司 | 在WebFlux框架搭建的网关路由应用插件的方法、系统及其应用 |
CN112929290A (zh) * | 2021-02-02 | 2021-06-08 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种限流方法、装置、系统、存储介质和设备、以及网关 |
CN113572689A (zh) * | 2021-09-24 | 2021-10-29 | 深圳市信润富联数字科技有限公司 | 微服务网关管理方法、系统、设备、可读存储介质及产品 |
CN113973129A (zh) * | 2021-09-30 | 2022-01-25 | 广西中科曙光云计算有限公司 | 一种支持多种注册中心微服务的网关 |
CN113973129B (zh) * | 2021-09-30 | 2024-02-20 | 广西中科曙光云计算有限公司 | 一种支持多种注册中心微服务的网关 |
CN114363403A (zh) * | 2021-12-28 | 2022-04-15 | 金蝶医疗软件科技有限公司 | 服务访问方法、系统、计算机设备和存储介质 |
CN114584451B (zh) * | 2022-01-18 | 2023-10-17 | 北京智象信息技术有限公司 | 一种基于微服务环境调试内部服务接口的方法及装置 |
CN114584451A (zh) * | 2022-01-18 | 2022-06-03 | 北京智象信息技术有限公司 | 一种基于微服务环境调试内部服务接口的方法及装置 |
CN114745442A (zh) * | 2022-04-13 | 2022-07-12 | 中国银行股份有限公司 | 联机批量处理系统 |
CN114827277B (zh) * | 2022-05-06 | 2023-12-01 | 北京思特奇信息技术股份有限公司 | 基于多机房容器部署的微服务系统及方法 |
CN114827277A (zh) * | 2022-05-06 | 2022-07-29 | 北京思特奇信息技术股份有限公司 | 基于多机房容器部署的微服务系统及方法 |
CN117081976A (zh) * | 2023-10-17 | 2023-11-17 | 建银工程咨询有限责任公司 | 网关路由的配置方法及其装置 |
CN117081976B (zh) * | 2023-10-17 | 2024-01-16 | 建银工程咨询有限责任公司 | 网关路由的配置方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112118184B (zh) | 2022-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112118184B (zh) | 网关自动路由方法及装置、存储介质、计算机设备 | |
RU2738088C1 (ru) | Способ обнаружения услуг, предоставляемых посредством функции сетевого репозитория | |
JP6161076B2 (ja) | 無線ネットワーク接続のための拡張可能なフレームワーク | |
CN112152828B (zh) | 一种游戏加速方法、装置、vpn终端及存储介质 | |
CN104363507B (zh) | 一种基于ott机顶盒的视音频录制及分享方法及系统 | |
US11800587B2 (en) | Method for establishing subflow of multipath connection, apparatus, and system | |
WO2021051747A1 (zh) | 数据更新方法、系统、装置、电子设备及计算机存储介质 | |
US20230079314A1 (en) | Service server switching control method and apparatus, electronic device, and storage medium | |
US11516732B2 (en) | Provisioning an embedded universal integrated circuit card (eUICC) of a mobile communication device | |
US20220312309A1 (en) | Method and Apparatus for Reporting User Plane Function Information, Storage Medium, and Electronic Apparatus | |
CN110196722A (zh) | 云主机批量管理方法、系统、设备及存储介质 | |
CN114301990A (zh) | 基于内容分发网络的节点调度方法、装置、存储介质 | |
US7062565B1 (en) | Service selection gateway (SSG) allowing access to services operating using changing set of access addresses | |
US9154973B1 (en) | Testing mobile phone maintenance channel | |
CN110597706A (zh) | 一种用于应用程序接口数据异常测试的方法和装置 | |
US9942766B1 (en) | Caller validation for end service providers | |
US9860736B1 (en) | Providing network resource access based on a purpose identifier | |
CN111698281B (zh) | 一种资源下载方法、装置、电子设备及存储介质 | |
JP4592694B2 (ja) | データベース同期 | |
CN107517162B (zh) | 一种cdn缓存服务器的确定方法及装置 | |
US11275674B1 (en) | Operations support system (OSS) test tool | |
US20190053078A1 (en) | Provisioning of sims for a testing environment of a wireless communications network | |
CN112187816B (zh) | Rpc请求处理方法、设备和存储介质 | |
CN112637026B (zh) | 一种全球服务请求的接入转发方法及系统 | |
CN115412611B (zh) | 基于dns服务器的查询方法、装置、设备及介质 |
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 | ||
CP03 | Change of name, title or address |
Address after: 100102 201 / F, block C, 2 lizezhong 2nd Road, Chaoyang District, Beijing Patentee after: Beijing Shuidi Technology Group Co.,Ltd. Address before: 100102 201, 2 / F, block C, No.2 lizezhong 2nd Road, Chaoyang District, Beijing Patentee before: Beijing Health Home Technology Co.,Ltd. |
|
CP03 | Change of name, title or address |