网关配置方法、网关、微服务和装置与流程

未命名 10-26 阅读:111 评论:0


1.本发明涉及网关配置技术领域,尤其涉及一种网关配置方法、网关、微服务和装置。


背景技术:

2.基于容器集群管理系统(kubernetes)的云原生应用,该云原生应用可以包括多个微服务,并由网关提供统一对外服务暴露,此时,网关需要为各微服务提供路由、鉴权等服务,因此,需要为各微服务配置路由鉴权信息。
3.现有的网关配置方法是通过手动配置或部署注册中心来获取各微服务对应的路由片段配置信息。其中,手动配置是通过运维部署人员手动在网关中对各微服务逐一配置服务地址、路由等信息,该方法较为复杂且容易出错;部署注册中心是通过各微服务自身维护所需路由信息,在网关启动时将各微服务自身的地址注册到注册中心,再由网关访问注册中心得到各微服务的地址信息和配置信息,该方法需要额外部署注册中心,提高了配置部署和维护的复杂性。
4.综上,无论是通过手动配置还是部署注册中心来获取各微服务的路由片段配置信息都具有一定局限性,导致各微服务的路由片段配置信息的可维护性和便利性较低。


技术实现要素:

5.本发明提供一种网关配置方法、网关、微服务和装置,用以解决现有的网关配置方法中需要通过手动配置或部署注册中心来获取各微服务的路由片段配置信息,导致各微服务的路由片段配置信息的可维护性和便利性较低的缺陷,该方法中,微服务能够维护自身所需路由片段配置信息,同时,无需通过手动配置也无需引入注册中心,网关就能够自动查找到存在的微服务以及各微服务对应的路由片段配置信息,从而自动进行网关配置,整个过程简单可靠,可有效提高各微服务的路由片段配置信息的可维护性和便利性。
6.第一方面,本发明提供一种网关配置方法,应用于网关,所述方法包括:针对至少一个命名空间中的目标命名空间,获取所述目标命名空间下各微服务的路由片段配置信息,针对各微服务的路由片段配置信息,所述路由片段配置信息为对应微服务在对应的目标命名空间下生成的;根据所有路由片段配置信息,得到路由片段总配置信息。
7.根据本发明提供的一种网关配置方法,所述获取所述目标命名空间下各微服务的路由片段配置信息,包括:针对所述目标命名空间下的各微服务,获取所述微服务对应的服务配置信息;在确定所述服务配置信息中携带标识信息的情况下,将所述服务配置信息确定为所述微服务的路由片段配置信息,所述标识信息用于指示所述服务配置信息为路由片段配置信息。
8.根据本发明提供的一种网关配置方法,获取所述目标命名空间下各微服务的路由片段配置信息,包括:在所述网关配置了命名空间查询功能的情况下,根据所述命名空间查
询功能,从所述至少一个命名空间中确定所述目标命名空间,并获取所述目标命名空间下各微服务的路由片段配置信息;在所述网关未配置命名空间查询功能的情况下,将所述网关部署的网关命名空间确定为所述目标命名空间,并获取所述目标命名空间下各微服务的路由片段配置信息,所述网关部署的网关命名空间属于所述至少一个命名空间。
9.根据本发明提供的一种网关配置方法,所述方法还包括:将所述路由片段总配置信息存储在所述网关的本地路径中;在所述网关启动的情况下,从所述本地路径中读取所述路由片段总配置信息。
10.第二方面,本发明提供一种网关配置方法,应用于微服务,所述方法包括:在所述微服务对应的命名空间下,生成所述微服务的路由片段配置信息,所述路由片段配置信息用于网关确定路由片段总配置信息。
11.根据本发明提供的一种网关配置方法,所述在所述微服务对应的命名空间下,生成所述微服务的路由片段配置信息,包括:获取所述微服务对应的路由片段配置信息模板;将所述路由片段配置信息模板部署在所述微服务对应的命名空间中;在所述命名空间中,根据所述路由片段配置信息模板,生成所述路由片段配置信息。
12.根据本发明提供的一种网关配置方法,所述路由片段配置信息模板包括:路由路径、转发地址、允许访问的角色及扩展配置信息。
13.根据本发明提供的一种网关配置方法,所述方法还包括:获取所述路由片段配置信息对应的标识信息;将所述路由片段配置信息以及所述路由片段配置信息对应的标识信息对应存储在所述命名空间中。
14.第三方面,本发明还提供一种网关配置装置,应用于网关,所述装置包括:获取模块,用于针对至少一个命名空间中的目标命名空间,获取所述目标命名空间下各微服务的路由片段配置信息,针对各微服务的路由片段配置信息,所述路由片段配置信息为对应微服务在对应的目标命名空间下生成的;汇总模块,用于根据所有路由片段配置信息,得到路由片段总配置信息。
15.第四方面,本发明还提供一种网关配置装置,应用于微服务,所述装置包括:处理模块,用于在所述微服务对应的命名空间下,生成所述微服务的路由片段配置信息,所述路由片段配置信息用于网关确定路由片段总配置信息。
16.第五方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面或第二方面所述网关配置方法。
17.第六方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面或第二方面所述网关配置方法。
18.第七方面,本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第一方面或第二方面所述网关配置方法。
19.本发明提供的网关配置方法、网关、微服务和装置,通过微服务在微服务对应的命名空间下,生成微服务的路由片段配置信息;网关针对至少一个命名空间中的目标命名空间,获取目标命名空间下各微服务的路由片段配置信息;网关根据所有路由片段配置信息,得到路由片段总配置信息。该方法中,微服务能够维护自身所需路由片段配置信息,同时,无需通过手动配置也无需引入注册中心,网关就能够自动查找到存在的微服务以及各微服
务对应的路由片段配置信息,从而自动进行网关配置,整个过程简单可靠,可有效提高各微服务的路由片段配置信息的可维护性和便利性。
附图说明
20.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1是本发明提供的网关配置方法的流程示意图之一;图2是本发明提供的网关配置方法的流程示意图之二;图3是本发明提供的网关配置方法的场景示意图;图4是本发明提供的网关配置装置的结构示意图之一;图5是本发明提供的网关配置装置的结构示意图之二;图6是本发明提供的电子设备的结构示意图。
具体实施方式
22.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
23.下面以微服务为例对本发明实施例进行进一步地说明。
24.如图1所示,是本发明提供的网关配置方法的流程示意图之一,可以包括:101、在微服务对应的命名空间下,生成微服务的路由片段配置信息。
25.其中,路由片段配置信息(即路由片段configmap)用于网关确定路由片段总配置信息。
26.微服务又可称为微服务架构,是一种云原生架构方法,在单个应用中包含众多松散耦合且可单独部署的小型组件或服务。
27.命名空间下可配置有至少一个微服务各自的路由片段配置信息,也可配置网关的相关信息,此处不作具体限定。该命名空间可由容器集群管理系统(kubernetes)提供,用于隔离和管理运行时容器。其中,kubernetes是一种应用部署、规划、更新、维护机制;容器指的是一个允许在资源隔离的过程中,运行应用程序和其依赖项的、轻量的虚拟化技术。
28.隔离指的是通过命名空间,确保每个容器都能够独立地运行应用程序,而不会相互干扰。
29.在一些实施例中,微服务在微服务对应的命名空间下,生成微服务的路由片段配置信息,可以包括:微服务获取微服务对应的路由片段配置信息模板;该微服务将路由片段配置信息模板部署在微服务对应的命名空间中;该微服务在命名空间中,根据路由片段配置信息模板,生成路由片段配置信息。
30.其中,路由片段配置信息模板用于指示微服务对应的路由片段配置信息的定义规则,也就是说,路由片段配置信息模板决定了路由片段配置格式,可选的,该路由片段配置
格式可根据网关要求定制。
31.示例性的,运维部署人员可采用kubernetes中的helm chart部署方式部署微服务,将微服务部署到需要的命名空间下,此时,微服务获取对应的路由片段配置信息模板,并将该路由片段配置信息模板部署在微服务对应的命名空间中,接着,根据该命名空间中的路由片段配置信息模板,生成路由片段配置信息,以备后续网关确定路由片段总配置信息。
32.其中,helm是kubernetes应用的包管理工具,helm将互相关联的多个资源统一打包成一个整体,交给kubernetes去运行,这个被打包的整体就叫做chart,可以把chart跟程序的源码包做类比。
33.可选的,对于应用发布者而言,可以通过helm打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库;对于使用者而言,使用helm后不需要编写复杂的应用部署文件,可以以简单的方式在kubernetes上查找、安装、升级、回滚、卸载应用程序。
34.在一些实施例中,路由片段配置信息模板可以包括:路由路径、转发地址、允许访问的角色及扩展配置信息。
35.路由指的是路由器从一个接口上收到数据包,根据数据包的目的地址进行定向,将该数据包转发到另一个接口的过程。
36.其中,路由转发和传递数据包的过程所经过的路径称为路由路径,数据包的目的地址称为转发地址。
37.允许访问的角色指的是允许访问路由的用户角色。
38.扩展配置信息可以包含任意网关支持的配置项,通过扩展配置信息可丰富路由配置能力,增加可扩展性。示例性的,该扩展配置信息可以加入请求限速每秒100次和/或服务开启时间段等配置。
39.在一些实施例中,在步骤101之后,该方法还可以包括:微服务获取路由片段配置信息对应的标识信息;该微服务将路由片段配置信息以及路由片段配置信息对应的标识信息对应存储在命名空间中。
40.其中,标识信息指的是一种标签(label),用于指示微服务对应的服务配置信息为路由片段配置信息。
41.在本发明实施例中,微服务在微服务对应的命名空间下,生成微服务的路由片段配置信息。该方法中,微服务能够维护自身所需路由片段配置信息,以使得网关后续可自动配置该路由片段配置信息,以有效提高各微服务的路由片段配置信息的可维护性和便利性。
42.下面以网关为例对本发明实施例进行进一步地说明。
43.如图2所示,是本发明提供的网关配置方法的流程示意图之二,应用于网关,可以包括:201、针对至少一个命名空间中的目标命名空间,获取目标命名空间下各微服务的路由片段配置信息。
44.其中,针对各微服务的路由片段配置信息,路由片段配置信息为对应微服务在对应的目标命名空间下生成的。
45.需要说明的是,该至少一个命名空间中的每个命名空间下,都有为网关配置的微
服务所对应的路由片段配置信息。
46.示例性的,在为任一网关配置微服务所对应的路由片段配置信息的过程中,微服务可以是一个或多个,此处不作具体限定,目标命名空间可以是至少一个命名空间中随机的命名空间,也可以是指定的命名空间,该目标命名空间的数量不限。
47.可选的,网关获取目标命名空间下各微服务的路由片段配置信息,包括:网关获取目标命名空间下各微服务的路由片段配置信息模板;网关根据各微服务的路由片段配置信息模板,确定各微服务的路由片段配置信息。
48.网关针对目标命名空间下的各微服务,获取微服务的路由片段配置信息模板,根据该微服务的路由片段配置信息模板,确定该微服务的路由片段配置信息。基于此,该网关可以通过获取目标命名空间下所有微服务的路由片段配置信息模板,进而确定所有微服务的路由片段配置信息。
49.在一些实施例中,网关获取目标命名空间下各微服务的路由片段配置信息,可以包括:网关针对目标命名空间下的各微服务,获取微服务对应的服务配置信息;该网关在确定服务配置信息中携带标识信息的情况下,将服务配置信息确定为微服务的路由片段配置信息。
50.其中,标识信息用于指示服务配置信息为路由片段配置信息。
51.服务配置信息可以包括路由片段配置信息,也可以包括微服务的架构数据配置信息。
52.网关针对目标命名空间下的各微服务,从微服务对应的chart部署包中,获取该微服务对应的服务配置信息,然后,通过判断上述服务配置信息中是否携带标识信息,若确定该服务配置信息中携带标识信息,则直接将该服务配置信息确定为该微服务的路由片段配置信息。基于此,该网关可以针对目标命名空间下所有微服务的路由片段配置信息。
53.在一些实施例中,网关获取目标命名空间下各微服务的路由片段配置信息,可以包括:网关在网关配置了命名空间查询功能的情况下,根据命名空间查询功能,从至少一个命名空间中确定目标命名空间,并获取目标命名空间下各微服务的路由片段配置信息;该网关在网关未配置命名空间查询功能的情况下,将网关部署的网关命名空间确定为目标命名空间,并获取目标命名空间下各微服务的路由片段配置信息。
54.其中,网关部署的网关命名空间属于至少一个命名空间。
55.运维部署人员可采用kubernetes中的helm chart部署方式部署网关,具体的,可以在网关的chart部署包的values.yaml中配置命名空间查询功能(findnamespaces),可指示网关从至少一个命名空间中确定特定的命名空间,即目标命名空间。
56.示例性的,假设有两类微服务,分别部署在两个命名空间business-service1和business-service2中;用于业务1应用的网关可以部署到命名空间business-service1中,其中,命名空间business-service1亦为网关命名空间,此时,网关无需配置命名空间查询功能,默认会查找网关命名空间business-service1下各微服务的路由片段配置信息,也就是说,网关命名空间business-service1此时被确定为目标命名空间,网关获取该目标命名空间下各微服务的路由片段配置信息;用于业务all应用的网关可以部署到命名空间business-all-gateway中,此时,网关无法获取路由片段配置信息,就需要配置命名空间查询功能,进而根据该命名空间查询功能,从至少一个命名空间中确定目标命名空间,也就是
说,该命名空间查询功能从微服务所对应的至少一个命名空间中确定的目标命名空间即为[business-service1, business-service2],其中,该目标命名空间包含了已知两类微服务所分别对应的两个命名空间,接着,网关获取该目标命名空间下各微服务的路由片段配置信息。
[0057]
202、根据所有路由片段配置信息,得到路由片段总配置信息。
[0058]
运维部署人员在部署或部署更新网关时,网关会动态查找所有微服务的路由片段配置信息,形成路由片段总配置信息,此处是通过网关的helm chart来实现的,示例性的,网关可以利用helm chart的查找(lookup)命令,查找在微服务部署时生成的路由片段配置信息,然后将所有路由片段配置信息进行汇总后,得到路由片段总配置信息。
[0059]
此外,网关可以只获取所有路由片段配置信息模板,进而得到网关chart的总配置信息模板。
[0060]
在部署网关时,根据网关chart的总配置信息模板,可生成路由片段总配置信息,该路由片段总配置信息中汇总了网关查找到的所有微服务的路由片段配置信息。
[0061]
在一些实施例中,该方法还可以包括:网关将路由片段总配置信息存储在网关的本地路径中;该网关在网关启动的情况下,从本地路径中读取路由片段总配置信息。
[0062]
网关在启动时,可以在网关的部署系统(deployment)中挂载路由片段总配置信息,该路由片段总配置信息可以作为文件存储到网关的本地路径中,以使在网关启动时,该网关能够从本地路径中直接读取该文件,得到路由片段总配置信息,从而实现网关自动配置。
[0063]
在本发明实施例中,网关针对至少一个命名空间中的目标命名空间,获取目标命名空间下各微服务的路由片段配置信息;网关根据所有路由片段配置信息,得到路由片段总配置信息。该方法无需通过手动配置也无需引入注册中心,网关就能够自动查找到存在的微服务以及各微服务对应的路由片段配置信息,从而自动进行网关配置,整个过程简单可靠,可有效提高各微服务的路由片段配置信息的可维护性和便利性。
[0064]
示例性的,如图3所示,是本发明提供的网关配置方法的场景示意图。结合图1和图2,从图3中可以看出,运维部署人员可采用kubernetes中的helm chart部署方式分别部署微服务和网关;各微服务维护自身所需路由片段配置信息,同时,网关可自动查找到存在的微服务以及各微服务对应的路由片段配置信息,然后,收集各微服务对应的路由片段配置信息并进行汇总,得到路由片段总配置信息,从而自动进行网关配置,这样一来,网关在启动时,可以在网关的部署系统(deployment)中挂载路由片段总配置信息,该路由片段总配置信息可以作为文件存储到网关的本地路径中,以使在网关启动时,该网关能够从本地路径中直接读取该文件,得到路由片段总配置信息,实现网关自动配置。
[0065]
示例性的,本发明实施例中涉及到的微服务的chart部署包文件配置如下:templates/gatewayfragment.yamlapiversion: v1kind: configmapmetadata: name: {{ .chart.name }}-gatewayfragment {{
‑ꢀ
/* 标识信息label中存在gatewayfragment,表明是路由片段 */
ꢀ‑
}}

labels:
ꢀꢀꢀ
{{
‑ꢀ
/* 该label用于表示此configmap为路由片段配置信息 */
ꢀ‑
}}
ꢀꢀꢀ
gatewayfragment: "{{ .chart.name }}"data: gatewayfragment: |{{
‑ꢀ
/* 路由片段配置格式可以根据网关要求定制,以下为示例。路由片段配置1 */
ꢀ‑
}}
ꢀꢀꢀ
service-a.api1:
ꢀꢀꢀꢀꢀ
location: /service-a/api1/
ꢀꢀꢀꢀꢀ
proxy_pass: http://service-a.{{ .release.namespace }}:8080
ꢀꢀꢀꢀꢀ
roles: [admin, user]
ꢀꢀꢀꢀꢀ
{{
‑ꢀ
/* 路由片段配置信息模板的扩展配置信息中可以加入任意网关能力支持的配置,以下为示例 */
ꢀ‑
}}
ꢀꢀꢀꢀꢀ
ext:
ꢀꢀꢀꢀꢀꢀꢀ
limit_req_rate: "100r/s" #请求限速每秒100次
ꢀꢀꢀꢀꢀꢀꢀ
open_close_time: ["9:00", "20:00"] #服务开启时间段
ꢀꢀꢀ
{{
‑ꢀ
/* 路由片段配置2 */
ꢀ‑
}}
ꢀꢀꢀ
service-a.api2:
ꢀꢀꢀꢀꢀ
location: /service-a/api2/
ꢀꢀꢀꢀꢀ
proxy_pass: http://service-a.{{ .release.namespace }}:8080
ꢀꢀꢀꢀꢀ
roles: [guest]上述示例中,网关针对目标命名空间下的各微服务,从各微服务对应的每个chart部署包中,获取各微服务对应的服务配置信息,通过判断上述服务配置信息中是否携带标识信息(label),在携带标识信息且判断该标识信息中存在gatewayfragment的情况下,说明该标识信息指示该服务配置信息为路由片段配置信息,此时,可确定该服务配置信息是为该微服务的路由片段配置信息。
[0066]
示例性的,本发明实施例中涉及到的网关chart的总配置信息模板具体如下:templates/configmap.yamlapiversion: v1kind: configmapmetadata: name: gateway-configdata: geteway-config: |-{{
‑ꢀ
/* 可以配置命名空间查询功能,用于查询在哪些命名空间查找路由片段配置信息;如不配置命名空间查询功能,则默认取网关所在的网关命名空间下的路由片段配置信息 */
ꢀ‑
}}
ꢀꢀꢀꢀꢀꢀꢀ
{{
‑ꢀ
$namespaces := .values.findnamespaces | default (list .release.namespace) }}
{{
‑ꢀ
range $namespace := $namespaces }}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{{
‑ꢀ
/* 使用lookup命令查找全部configmap */
ꢀ‑
}}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{{
‑ꢀ
range $index, $configmap := (lookup "v1" "configmap" $namespace "").items }}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{{
‑ꢀ
if $configmap.metadata.labels }}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{{
‑ꢀ
/* 检查configmap的label中是否存在gatewayfragment,如果是则认为是路由片段配置信息 */
ꢀ‑
}}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{{
‑ꢀ
$label := default "" $configmap.metadata.labels.gatewayfragment }}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{{
‑ꢀ
if $label }}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{{
‑ꢀ
/* 各微服务路由片段配置信息按照原配置格式,输出到网关总配置信息中 */
ꢀ‑
}}{{
‑ꢀ
$configmap.data.gatewayfragment | nindent 6}}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{{
‑ꢀ
end }}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{{
‑ꢀ
end }}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{{
‑ꢀ
end }}
ꢀꢀꢀꢀꢀꢀꢀ
{{
‑ꢀ
end }}上述示例中包含命名空间查询功能,即在网关的chart部署包的values.yaml中配置findnamespaces,表示需要查找微服务所对应的至少一个命名空间中的目标命名空间;同时,网关可以利用helm chart的查找(lookup)命令,查找在部署微服务时对应的路由片段配置信息模板,这样一来,网关就可以获取所有路由片段配置信息模板,进而得到网关chart的总配置信息模板。
[0067]
示例性的,在部署网关时,根据上述网关chart的总配置信息模板,可以生成路由片段总配置信息,该路由片段总配置信息的格式如下:apiversion: v1kind: configmapmetadata: name: gateway-configdata: geteway-config: |
‑ꢀꢀꢀ
service-a.api1:
ꢀꢀꢀꢀꢀ
location: /service-a/api1/
ꢀꢀꢀꢀꢀ
proxy_pass: http://service-a.business-service1:8080
ꢀꢀꢀꢀꢀ
roles: [admin, user]
ꢀꢀꢀꢀꢀ
ext:
ꢀꢀꢀꢀꢀꢀꢀ
limit_req_rate: "100r/s"
ꢀꢀꢀꢀꢀꢀꢀ
open_close_time: ["9:00", "20:00"]
ꢀꢀꢀ
service-a.api2:
ꢀꢀꢀꢀꢀ
location: /service-a/api2/
ꢀꢀꢀꢀꢀ
proxy_pass: http://service-a.business-service1:8080
ꢀꢀꢀꢀꢀ
roles: [guest]
ꢀꢀꢀ
service-b.api:
ꢀꢀꢀꢀꢀ
location: /service-b/api/
ꢀꢀꢀꢀꢀ
proxy_pass: http://service-b.business-service1:8000
ꢀꢀꢀꢀꢀ
roles: [admin, user, guest]
ꢀꢀꢀ
service-c.api:
ꢀꢀꢀꢀꢀ
location: /service-c/api/
ꢀꢀꢀꢀꢀ
proxy_pass: http://service-c.business-service2:9999
ꢀꢀꢀꢀꢀ
roles: [admin]上述示例中可以看到路由片段总配置信息中汇总了网关查找到的所有微服务的路由片段配置信息,这里有命名空间business-service1下的微服务service-a、service-b,和命名空间business-service2下的微服务service-c。
[0068]
示例性的,网关在启动时,可以在网关的部署系统(deployment)中挂载上述路由片段总配置信息,主要配置如下:templates/deployment.yamlapiversion: apps/v1kind: deploymentspec: template:
ꢀꢀꢀ
spec:
ꢀꢀꢀꢀꢀ
containers:
ꢀꢀꢀꢀꢀꢀꢀ‑ꢀ
name: gateway
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
image: {{ .values.image }}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
volumemounts:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ‑ꢀ
name: config
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
mountpath: /apps/
ꢀꢀꢀꢀꢀ
volumes:
ꢀꢀꢀꢀꢀꢀꢀ‑ꢀ
name: config
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
configmap:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
name: gateway-config上述示例中,网关在启动时,在网关的部署系统(deployment)中挂载路由片段总配置信息,该路由片段总配置信息可以作为文件存储到网关的本地路径中,以使在网关启动时,该网关能够从本地路径中直接读取该文件,得到路由片段总配置信息,实现网关自动配置。
[0069]
下面对本发明提供的网关配置装置进行描述,下文描述的网关配置装置与上文描述的网关配置方法可相互对应参照。
[0070]
如图4所示,是本发明提供的网关配置装置的结构示意图之一,应用于网关,该装置可以包括:
获取模块401,用于针对至少一个命名空间中的目标命名空间,获取该目标命名空间下各微服务的路由片段配置信息,针对各微服务的路由片段配置信息,该路由片段配置信息为对应微服务在对应的目标命名空间下生成的;汇总模块402,用于根据所有路由片段配置信息,得到路由片段总配置信息。
[0071]
可选的,获取模块401包括获取单元4011和处理单元4012,获取单元4011,具体用于针对该目标命名空间下的各微服务,获取该微服务对应的服务配置信息;处理单元4012,具体用于在确定该服务配置信息中携带标识信息的情况下,将该服务配置信息确定为该微服务的路由片段配置信息,该标识信息用于指示该服务配置信息为路由片段配置信息。
[0072]
可选的,获取模块401,具体用于在该网关配置了命名空间查询功能的情况下,根据该命名空间查询功能,从该至少一个命名空间中确定该目标命名空间,并获取该目标命名空间下各微服务的路由片段配置信息;在该网关未配置命名空间查询功能的情况下,将该网关部署的网关命名空间确定为该目标命名空间,并获取该目标命名空间下各微服务的路由片段配置信息,该网关部署的网关命名空间属于该至少一个命名空间。
[0073]
可选的,汇总模块402,具体用于将该路由片段总配置信息存储在该网关的本地路径中;在该网关启动的情况下,从该本地路径中读取该路由片段总配置信息。
[0074]
如图5所示,是本发明提供的网关配置装置的结构示意图之二,应用于微服务,该装置可以包括:处理模块501,用于在该微服务对应的命名空间下,生成该微服务的路由片段配置信息,该路由片段配置信息用于网关确定路由片段总配置信息。
[0075]
可选的,处理模块501,具体用于获取该微服务对应的路由片段配置信息模板;将该路由片段配置信息模板部署在该微服务对应的命名空间中;在该命名空间中,根据该路由片段配置信息模板,生成该路由片段配置信息。
[0076]
可选的,路由片段配置信息模板包括:路由路径、转发地址、允许访问的角色及扩展配置信息。
[0077]
可选的,处理模块501,具体用于获取该路由片段配置信息对应的标识信息;将该路由片段配置信息以及该路由片段配置信息对应的标识信息对应存储在该命名空间中。
[0078]
如图6所示,是本发明提供的电子设备的结构示意图,该电子设备可以包括:处理器(processor)610、通信接口(communications interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行网关配置方法,应用于网关,该方法包括:针对至少一个命名空间中的目标命名空间,获取该目标命名空间下各微服务的路由片段配置信息,针对各微服务的路由片段配置信息,该路由片段配置信息为对应微服务在对应的目标命名空间下生成的;根据所有路由片段配置信息,得到路由片段总配置信息。或者,以执行网关配置方法,应用于微服务,该方法包括:在该微服务对应的命名空间下,生成该微服务的路由片段配置信息,该路由片段配置信息用于网关确定路由片段总配置信息。
[0079]
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本
发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0080]
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的网关配置方法,应用于网关,该方法包括:针对至少一个命名空间中的目标命名空间,获取该目标命名空间下各微服务的路由片段配置信息,针对各微服务的路由片段配置信息,该路由片段配置信息为对应微服务在对应的目标命名空间下生成的;根据所有路由片段配置信息,得到路由片段总配置信息。或者,以执行网关配置方法,应用于微服务,该方法包括:在该微服务对应的命名空间下,生成该微服务的路由片段配置信息,该路由片段配置信息用于网关确定路由片段总配置信息。
[0081]
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的网关配置方法,应用于网关,该方法包括:针对至少一个命名空间中的目标命名空间,获取该目标命名空间下各微服务的路由片段配置信息,针对各微服务的路由片段配置信息,该路由片段配置信息为对应微服务在对应的目标命名空间下生成的;根据所有路由片段配置信息,得到路由片段总配置信息。或者,以执行网关配置方法,应用于微服务,该方法包括:在该微服务对应的命名空间下,生成该微服务的路由片段配置信息,该路由片段配置信息用于网关确定路由片段总配置信息。
[0082]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0083]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0084]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:
1.一种网关配置方法,其特征在于,应用于网关,所述方法包括:针对至少一个命名空间中的目标命名空间,获取所述目标命名空间下各微服务的路由片段配置信息,针对各微服务的路由片段配置信息,所述路由片段配置信息为对应微服务在对应的目标命名空间下生成的;根据所有路由片段配置信息,得到路由片段总配置信息。2.根据权利要求1所述的方法,其特征在于,所述获取所述目标命名空间下各微服务的路由片段配置信息,包括:针对所述目标命名空间下的各微服务,获取所述微服务对应的服务配置信息;在确定所述服务配置信息中携带标识信息的情况下,将所述服务配置信息确定为所述微服务的路由片段配置信息,所述标识信息用于指示所述服务配置信息为路由片段配置信息。3.根据权利要求1或2所述的方法,其特征在于,获取所述目标命名空间下各微服务的路由片段配置信息,包括:在所述网关配置了命名空间查询功能的情况下,根据所述命名空间查询功能,从所述至少一个命名空间中确定所述目标命名空间,并获取所述目标命名空间下各微服务的路由片段配置信息;在所述网关未配置命名空间查询功能的情况下,将所述网关部署的网关命名空间确定为所述目标命名空间,并获取所述目标命名空间下各微服务的路由片段配置信息,所述网关部署的网关命名空间属于所述至少一个命名空间。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:将所述路由片段总配置信息存储在所述网关的本地路径中;在所述网关启动的情况下,从所述本地路径中读取所述路由片段总配置信息。5.一种网关配置方法,其特征在于,应用于微服务,所述方法包括:在所述微服务对应的命名空间下,生成所述微服务的路由片段配置信息,所述路由片段配置信息用于网关确定路由片段总配置信息。6.根据权利要求5所述的方法,其特征在于,所述在所述微服务对应的命名空间下,生成所述微服务的路由片段配置信息,包括:获取所述微服务对应的路由片段配置信息模板;将所述路由片段配置信息模板部署在所述微服务对应的命名空间中;在所述命名空间中,根据所述路由片段配置信息模板,生成所述路由片段配置信息。7.根据权利要求6所述的方法,其特征在于,所述路由片段配置信息模板包括:路由路径、转发地址、允许访问的角色及扩展配置信息。8.根据权利要求5-7任一项所述的方法,其特征在于,所述方法还包括:获取所述路由片段配置信息对应的标识信息;将所述路由片段配置信息以及所述路由片段配置信息对应的标识信息对应存储在所述命名空间中。9.一种网关配置装置,其特征在于,应用于网关,所述装置包括:获取模块,用于针对至少一个命名空间中的目标命名空间,获取所述目标命名空间下各微服务的路由片段配置信息,针对各微服务的路由片段配置信息,所述路由片段配置信
息为对应微服务在对应的目标命名空间下生成的;汇总模块,用于根据所有路由片段配置信息,得到路由片段总配置信息。10.一种网关配置装置,其特征在于,应用于微服务,所述装置包括:处理模块,用于在所述微服务对应的命名空间下,生成所述微服务的路由片段配置信息,所述路由片段配置信息用于网关确定路由片段总配置信息。

技术总结
本发明提供一种网关配置方法、网关、微服务和装置,涉及网关配置技术领域,该方法包括:微服务在微服务对应的命名空间下,生成微服务的路由片段配置信息;网关针对至少一个命名空间中的目标命名空间,获取目标命名空间下各微服务的路由片段配置信息;网关根据所有路由片段配置信息,得到路由片段总配置信息。该方法中,微服务能够维护自身所需路由片段配置信息,同时,无需通过手动配置也无需引入注册中心,网关就能够自动查找到存在的微服务以及各微服务对应的路由片段配置信息,从而自动进行网关配置,整个过程简单可靠,可有效提高各微服务的路由片段配置信息的可维护性和便利性。服务的路由片段配置信息的可维护性和便利性。服务的路由片段配置信息的可维护性和便利性。


技术研发人员:刘伟
受保护的技术使用者:云粒智慧科技有限公司
技术研发日:2023.09.12
技术公布日:2023/10/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐