一种基于软件定义的API网关的实现方法与流程

文档序号:32744739发布日期:2022-12-30 21:29阅读:23来源:国知局
一种基于软件定义的API网关的实现方法与流程
一种基于软件定义的api网关的实现方法
技术领域
1.本发明涉及通信技术领域,尤其是一种基于软件定义的api网关的实现方法。


背景技术:

2.随着微后端服务以及云原生相关技术的发展,后端服务的粒度越来越细,后端服务是围绕业务功能组织的,一些公共功能后端服务能力都将迁移到api网关;api网关接收外部客户端请求,并将这些请求进行路由匹配以及协议转换,然后反向代理并负载均衡到后端微后端服务。
3.现有的api网关为了提高性能,大部分都采用无状态机制,这也导致了api网关之间相互独立,一旦某个网关出现问题,都可能导致故障或者断流。


技术实现要素:

4.为解决现有技术存在的上述问题,本发明提供一种基于软件定义的api网关的实现方法,通过控制面来定义转发面的转发和处理机制,并监控转发面的运行状态,实时调整路由策略以及安全策略,提高资源的利用率以及系统的可靠性。
5.为实现上述目的,本发明采用下述技术方案:
6.在本发明一实施例中,提出了一种基于软件定义的api网关的实现方法,该方法包括:
7.api网关的控制面根据用户请求分配并创建api网关的转发面;
8.用户根据业务需求向api网关的控制面为后端服务订阅相应的功能服务;
9.api网关的控制面根据用户所订阅的功能服务,将相应的路由策略和安全策略下发至相应的api网关的转发面,api网关的转发面根据路由策略以及安全策略进行路由转发和安全防护;
10.api网关的控制面根据用户所订阅的监控服务,实时采集并分析api网关的转发面相应的运行状态,并根据分析结果动态调整路由策略和安全策略。
11.进一步地,api网关的控制面根据用户提交的请求,调度资源,创建api网关的转发面,并对api网关的转发面进行初始化配置。
12.进一步地,api网关的控制面根据地址池信息,为api网关的转发面配置对外的公网地址,并对外发布后端服务对外的域名信息。
13.进一步地,api网关的转发面采用插件化的设计方式,每个功能服务在api网关中都是一个插件;每个功能服务插件在api网关的转发面生效之后,结合api网关的控制面下发的路由策略和安全策略,对流量进行代理、修改、复制、监控以及安全防护。
14.进一步的,api网关的转发面实时监控配置参数的变化,并将配置参数实时加载到内存,使得所有变更即时生效。
15.进一步地,api网关的控制面和转发面之间采取授权验证的访问方式;当api网关的转发面代理多个后端服务时,根据每个后端服务所需要的不同安全等级或者防护等级,
为每个后端服务或者后端服务的部分路由策略,实例化不同的功能服务插件。
16.进一步地,api网关的控制面根据用户所订阅的功能服务,动态开启api网关的转发面相应的功能服务插件,当用户配置具体功能服务参数时,则将功能服务插件实例化,并将相应的策略下发至api网关的转发面。
17.进一步地,api网关的控制面根据api网关的转发面的运行状态的分析结果,调整api网关的转发面之间的负载比率。
18.进一步地,api网关的控制面根据api网关的转发面的运行状态的分析结果,对api网关的转发面进行扩容/缩容。
19.在本发明一实施例中,还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述基于软件定义的api网关的实现方法。
20.在本发明一实施例中,还提出了一种计算机可读存储介质,计算机可读存储介质存储有执行基于软件定义的api网关的实现方法的计算机程序。
21.有益效果:
22.1、本发明实现了api网关的控制和转发的分离。
23.2、本发明提高了资源的利用率以及可靠性。
附图说明
24.图1是本发明的基于软件定义的api网关的实现方法流程示意图;
25.图2是本发明一实施例的api网关代理后端服务的流量交互图;
26.图3是本发明的计算机设备结构示意图。
具体实施方式
27.下面将参考若干示例性实施方式来描述本发明的原理和精神,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
28.本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
29.根据本发明的实施方式,提出了一种基于软件定义的api网关的实现方法,api网关的控制面根据用户请求分配并创建api网关的转发面;用户根据业务需求向api网关的控制面为后端服务订阅相应的功能服务;api网关的控制面根据用户所订阅的功能服务,将相应的路由策略和安全策略下发至相应的api网关的转发面,api网关的转发面根据路由策略以及安全策略进行路由转发和安全防护;api网关的控制面根据用户所订阅的监控服务,实时采集并分析api网关的转发面相应的运行状态,并根据分析结果动态调整路由策略和安全策略。
30.下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
31.图1是本发明的基于软件定义的api网关的实现方法流程示意图。如图1所示,该方
法包括:
32.s1、api网关的控制面根据用户请求分配并创建api网关的转发面;
33.api网关的控制面根据用户提交的请求,调度资源,创建api网关的转发面;用户提交请求时,可以指定api网关的转发面的最大并发量、安全服务等级以及数据存储方式等;
34.api网关的控制面调度资源,创建api网关的转发面,并对api网关的转发面进行初始化的配置,包括网络配置以及缺省配置;
35.api网关的控制面根据地址池信息,为api网关的转发面配置对外的公网地址,并对外发布后端服务对外的域名信息;
36.可选的,api网关的控制面也可以将对外的公网地址落在负载均衡设备上,此时,api网关的控制面需要打通负载均衡设备与api网关的转发面之间的网络。
37.s2、用户根据业务需求向api网关的控制面为后端服务订阅相应的功能服务;
38.用户根据业务需求向api网关的控制面订阅功能服务,用户所订阅的功能服务包括反向代理服务、流控服务、监控服务、黑白名单服务、api安全服务、web安全服务、熔断服务以及健康检查服务等;
39.用户在反向代理服务中需要指定api网关的转发面的路由信息,api网关的控制面对用户所输入的路由信息进行校验,同一个api网关的转发面中的路由是不可以重复的,路由可以是传输层或者应用层;
40.api网关的转发面采用插件化的设计方式,每个功能服务在api网关的转发面中都是一个插件;功能服务插件在api网关的转发面生效之后,结合api网关的控制面下发的路由策略和安全策略,对流量进行代理、修改、复制、监控以及安全防护;
41.api网关的转发面实时监控配置参数的变化,并将配置参数实时加载到内存,使得所有变更即时生效;
42.api网关的控制面和转发面之间采取授权验证的访问方式;当api网关的转发面代理多个后端服务时,每个后端服务所需要的安全等级或者防护等级不同,可以为每个后端服务或者后端服务的部分路由策略,实例化(创建)不同的功能服务插件;
43.用户可以动态订阅功能服务,api网关的控制面根据用户订阅的功能服务,动态开启相应的功能服务插件。
44.s3、api网关的控制面根据用户所订阅的功能服务,将相应的路由策略和安全策略下发至相应的api网关的转发面,api网关的转发面根据路由策略以及安全策略进行路由转发和安全防护;
45.s4、api网关的控制面根据用户所订阅的监控服务,实时采集并分析api网关的转发面相应的运行状态,并根据分析结果动态调整路由策略和安全策略;
46.api网关的控制面根据用户所订阅的监控服务,实时采集并分析api网关的转发面的运行状态,api网关的控制面根据api网关的转发面的运行状态的分析结果,对api网关的转发面进行扩容/缩容;api网关的控制面根据api网关的转发面的运行状态的分析结果,调整api网关的转发面之间的负载比率。
47.需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一
个步骤执行,和/或将一个步骤分解为多个步骤执行。
48.为了对上述基于软件定义的api网关的实现方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。
49.图2是本发明一实施例的api网关代理后端服务的流量交互图。如图2所示,控制流即api网关的控制面交互的流量,数据流即api网关的转发面交互的流量,具体实施步骤如下:
50.1、用户通过订购页面,发起api网关的购买,api网关的控制面根据选择的api网关的转发面的规格实例化(创建)api网关的转发面;
51.api网关的控制面根据用户选择的api网关的转发面的规格,调度资源,实例化api网关的转发面;api网关的转发面的规格参数包括api网关的转发面的最大并发量、安全服务等级以及数据存储方式等;
52.api网关的控制面调度资源,创建api网关的转发面,并对api网关的转发面进行初始化的配置,包括网络配置以及缺省配置;
53.具体实施时,缺省配置包括日志配置、反向代理配置以及api网关的转发面的系统参数阈值;
54.api网关的控制面根据地址池信息,为api网关的转发面配置对外的公网地址,并对外发布后端服务对外的域名信息;
55.api网关的控制面管理公网地址池信息,建立api网关的转发面与公网地址的关系,以及域名关系;api网关的控制面从未使用的公网地址中为api网关的转发面分配地址,并进行配置,并向dns(domain name system,域名系统)发布域名信息。本实施例中,dns仅仅是一个示例,实际使用中也可以是其他的gtm(global traffic manager,全局流量关联)系统等;
56.可选的,api网关的控制面也可以将对外的公网地址落在负载均衡设备上,此时,api网关的控制面需要打通负载均衡设备与api网关的转发面之间的网络。
57.2、用户根据业务需求向api网关的控制面为后端服务订阅相应的功能服务;
58.用户根据业务需求向api网关的控制面订阅功能服务,用户所订阅的功能服务包括反向代理服务、流控服务、监控服务、黑白名单服务、api安全服务、web安全服务、熔断服务、健康检查服务等;
59.具体实施时,用户在反向代理服务中需要指定api网关的转发面的路由信息,api网关的控制面对用户所输入的路由信息进行校验,同一个api网关的转发面中的路由是不可以重复的,路由可以是传输层或者应用层;
60.具体实施时,当client端需要访问用户所发布的后端服务时,client端会根据api网关的控制面发布的域名,向dns发起请求,dns会返回api网关的转发面对应的公网地址;
61.当client端访问流量到达api网关的转发面时,api网关的转发面根据用户配置的反向代理,将client端请求代理到后端服务,后端服务根据请求进行应答;当流量经过api网关时,api网关的转发面根据用户所订阅的功能服务,进行流量的处理,比如,当用户订阅了ip黑白名单功能,则api网关的转发面则会检测请求的客户端地址是否命中了ip黑白名单,如果命中了黑名单,则直接拦截,如果命中了白名单,则直接通过;
62.用户在api网关的控制面所订阅的功能服务,都会以插件的方式下发到api网关的转发面,在api网关的转发面形成路由策略和安全策略,对客户端的请求进行代理、修改、复制、监控以及安全防护;路由策略包括流量控制相关的策略,比如流量代理、修改、复制、负载均衡、流量限速和分流等;安全策略主要包括安全检测、流量拦截和流量监控等方面的策略;
63.api网关的转发面采用插件化的设计方式,每个功能服务在api网关的转发面中都是一个插件;每个功能服务插件在api网关的转发面生效之后,根据api网关的控制面下发的路由策略以及安全策略,对流量进行代理、修改、复制、监控以及安全防护;
64.api网关的转发面实时监控配置参数的变化,并将配置参数实时加载到内存,使得所有变更即时生效;
65.api网关的控制面和转发面之间采取授权验证的访问方式,只有控制面可以对转发面进行配置管理;当api网关的转发面代理多个后端服务时,每个后端服务所需要的安全等级或者防护等级不同,可以为每个后端服务或者后端服务的部分路由策略,实例化不同的功能服务插件;
66.在本实施例中,用户为后端服务a订阅反向代理服务以及流控服务;为后端服务b订阅反向代理和ip黑白名单服务;
67.具体实施时,用户可以为某条路由订阅不同的功能服务,路由可以是某条精确的url请求,或者某个通配的url;比如对登录的url进行限速,则可以为登录这条路由订阅流控服务,对流量的请求速率和并发数等进行限制,对后端服务进行保护;
68.具体实施时,可以对请求报文的某些字段或者参数,作为匹配条件,比如对某个客户端地址进行限速,某个ua(user-agent,用户行为)进行流量的控制。
69.3、api网关的控制面根据用户所订阅的功能服务,将相应的路由策略和安全策略下发至相应的api网关的转发面,api网关的转发面根据路由策略以及安全策略进行路由转发和安全防护;
70.api网关的控制面根据用户所订阅的功能服务,开启api网关的转发面相关的功能服务插件,当用户配置具体功能服务参数时,则将功能服务插件实例化;比如用户订阅高级反向代理服务,则api网关的控制面将开启转发面的高级反向代理插件,并将具体的路由策略和安全策略下发到api网关的转发面。
71.4、api网关的控制面根据用户所订阅的监控服务,实时采集并分析api网关的转发面相应的运行状态,并根据分析结果动态调整路由策略和安全策略;
72.api网关的控制面根据用户所订阅的监控服务,实时采集并分析api网关的转发面相应的运行状态,api网关的控制面根据分析结果,对api网关的转发面进行扩容/缩容;api网关的控制面根据分析结果,调整api网关的转发面之间的负载比率;
73.具体实施时,若用户订阅了流控服务,则api网关的控制面会采集相关的日志,监控api接口请求的次数/链接次数,api网关的控制面根据监控的结果,下发路由策略和安全策略,对某个api接口进行限速,或者对api接口的某个源端进行限制,api网关的转发面不感知分析结果,只需要按照api网关的控制面下发的路由策略和安全策略进行执行即可,提高了转发的效率;
74.具体实施时,api网关的控制面监控api网关的转发面的运行状态,比如,监控api
网关的转发面之间的内存、cpu的使用情况以及请求的链接数,若某个api网关的转发面过载,则api网关的控制面可以更新lb即负载均衡上的负载比率,使得api网关的转发面都在正常运行状态,当调整之后,api网关的转发面仍然过载,则进行扩容;若所有api网关的转发面都轻载,则进行缩容。
75.基于前述发明构思,如图3所示,本发明还提出一种计算机设备100,包括存储器110、处理器120及存储在存储器110上并可在处理器120上运行的计算机程序130,处理器120执行计算机程序130时实现前述基于软件定义的api网关的实现方法。
76.基于前述发明构思,本发明还提出一种计算机可读存储介质,计算机可读存储介质存储有执行前述基于软件定义的api网关的实现方法的计算机程序。
77.本发明提出的基于软件定义的api网关的实现方法,实现了api网关的控制和转发的分离,提高了资源的利用率以及可靠性。
78.虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包含的各种修改和等同布置。
79.对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1