CN113691596B - 一种网关控制方法、装置、电子设备及存储介质 - Google Patents
一种网关控制方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113691596B CN113691596B CN202110925748.2A CN202110925748A CN113691596B CN 113691596 B CN113691596 B CN 113691596B CN 202110925748 A CN202110925748 A CN 202110925748A CN 113691596 B CN113691596 B CN 113691596B
- Authority
- CN
- China
- Prior art keywords
- quota
- gateway
- period
- gateway node
- local
- 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.)
- Active
Links
Images
Classifications
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- 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/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种网关控制方法、装置、电子设备及存储介质,其中,网关控制方法包括:获取网关集群中各网关节点的配额使用情况;基于配额使用情况,确定各网关节点之间的配额分配比例;基于集群配额及配额分配比例,确定第一网关节点的第二配额;向第一网关节点发送配额申请通知,配额申请通知用于指示第一网关节点按照第二配额向缓存数据库申请流量额度。本申请实施例实现对第二周期内网关集群中所有网关节点的第二配额的动态调整,进而使得每经过一个周期,网关集群的限流效果能够获得一定提升,各网关节点的限流配额被充分利用,从而在保持限流性能的同时,提高网关集群的限流精度,提高限流效果。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种网关控制方法、装置、电 子设备及存储介质。
背景技术
目前,在高并发场景中,为了避免网关集群的后台系统被大流量冲击, 需要对接入网关集群的访问请求进行限流。
相关技术中,一般通过网关集群中各网关节点分摊总流量配额。然而, 由于负载均衡配置、客户端长连接等问题,到达网关集群中各网关节点的 流量一般不同,使得某些请求量较大的网关节点在达到预先分配的流量配 额时开始限流,而某些请求量较小的网关节点的配额存在剩余,造成资源 浪费。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提 供了一种网关控制方法、装置、电子设备及存储介质。
第一方面,本申请提供了一种网关控制方法,应用于配置中心,所述 方法包括:
获取网关集群中各网关节点的配额使用情况,所述配额使用情况用于 指示网关节点在第一周期内的第一配额与实际访问量的匹配情况,所述第 一配额为第一周期对应的初始配额;
基于所述配额使用情况,确定各网关节点之间的配额分配比例;
基于集群配额及所述配额分配比例,确定所述第一网关节点的第二配 额,所述第一网关节点为所述网关集群中的任意一个网关节点,所述第二 配额为第二周期对应的初始配额,所述第二周期为与所述第一周期相邻的 下一个周期;
向所述第一网关节点发送配额申请通知,所述配额申请通知用于指示 所述第一网关节点按照所述第二配额向缓存数据库申请流量额度。
第二方面,本申请提供了一种网关控制方法,应用于网关节点,所述 方法包括:
向配置中心发送实际访问量,所述实际访问量为网关节点在第一周期 内累计处理的访问请求量;
接收来自于所述配置中心的配额申请通知,所述配额申请通知用于指 示所述网关节点按照所述第二配额向缓存数据库申请流量额度;
向缓存数据库发送第一获取请求,所述第一获取请求用于指示所述缓 存数据库按照所述第二配额为所述网关节点分配流量额度,所述第二配额 为第二周期对应的初始配额;
接收来自于缓存数据库的第二配额,第二配额用于控制第二周期的访 问请求量,所述第二周期为与所述第一周期相邻的下一个周期。
第三方面,本申请提供了一种网关集群,包括:配置中心和多个网关 节点;
所述配置中心,用于执行如第一方面所述的网关控制方法;
任意一个所述网关节点,用于执行如第二方面所述的网关控制方法。
第四方面,本申请提供了一种网关控制装置,应用于配置中心,所述 装置包括:
获取模块,用于获取网关集群中各网关节点的配额使用情况,所述配 额使用情况用于指示网关节点在第一周期内的第一配额与实际访问量的匹 配情况,所述第一配额为第一周期对应的初始配额;
第一确定模块,用于基于所述配额使用情况,确定各网关节点之间的 配额分配比例;
第二确定模块,用于基于集群配额及所述配额分配比例,确定所述第 一网关节点的第二配额,所述第一网关节点为所述网关集群中的任意一个 网关节点,所述第二配额为第二周期对应的初始配额,所述第二周期为与 所述第一周期相邻的下一个周期;
第一发送模块,用于向所述第一网关节点发送配额申请通知,所述配 额申请通知用于指示所述第一网关节点按照所述第二配额向缓存数据库申 请流量额度。
第五方面,本申请提供了一种网关控制装置,应用于网关节点,所述 装置包括:
第二发送模块,用于向配置中心发送实际访问量,所述实际访问量为 网关节点在第一周期内累计处理的访问请求量;
第一接收模块,用于接收来自于所述配置中心的配额申请通知,所述 配额申请通知用于指示所述网关节点按照所述第二配额向缓存数据库申请 流量额度;
第三发送模块,用于向缓存数据库发送第一获取请求,所述第一获取 请求用于指示所述缓存数据库按照所述第二配额为所述网关节点分配流量 额度;
第二接收模块,用于接收来自于缓存数据库的第二配额,第二配额用 于控制第二周期的访问请求量,所述第二周期为与所述第一周期相邻的下 一个周期。
第六方面,本申请提供了一种电子设备,包括处理器、通信接口、存 储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相 互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面所述的网 关控制方法或者第二方面所述的网关控制方法。
第七方面,本申请提供了一种计算机可读存储介质,所述计算机可读 存储介质上存储有网关控制方法的程序,所述网关控制方法的程序被处理 器执行时实现第一方面所述的网关控制方法或者第二方面所述的网关控制 方法的步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的该方法,配置中心能够通过获取网关集群中各网 关节点的配额使用情况,所述配额使用情况用于指示网关节点在第一周期 内的第一配额与实际访问量的匹配情况,所述第一配额为第一周期对应的 初始配额;基于所述配额使用情况,确定各网关节点之间的配额分配比例; 基于集群配额及所述配额分配比例,确定所述第一网关节点的第二配额, 所述第一网关节点为所述网关集群中的任意一个网关节点,所述第二配额 为第二周期对应的初始配额,所述第二周期为与所述第一周期相邻的下一 个周期;向所述第一网关节点发送配额申请通知,所述配额申请通知用于 指示所述第一网关节点按照所述第二配额向缓存数据库申请流量额度。也 就是说,本申请实施例可以基于网关集群中各网关节点的配额使用情况动 态确定配额分配比例,按照配额分配比例对集群配额进行分配,实现基于 网关集群中所有网关节点第一周期内的配额使用情况,调整第二周期内将 集群配额分配给各个网关节点的配额分配比例,进而,实现对第二周期内 网关集群中所有网关节点的第二配额的动态调整,即实现全局动态调整, 进而使得每经过一个周期,网关集群的限流效果能够获得一定提升,各网 关节点的限流配额被充分利用,从而在保持限流性能的同时,提高网关集 群的限流精度,提高限流效果。
并且,网关集群中的任意一个网关节点,都能够向配置中心发送实际 访问量,所述实际访问量为网关节点在第一周期内累计处理的访问请求量; 接收来自于所述配置中心的配额申请通知,所述配额申请通知用于指示所 述网关节点按照所述第二配额向缓存数据库申请流量额度;向缓存数据库 发送第一获取请求,所述第一获取请求用于指示所述缓存数据库按照所述 第二配额为所述网关节点分配流量额度;接收来自于缓存数据库的第二配 额,第二配额用于控制第二周期的访问请求量,所述第二周期为与所述第 一周期相邻的下一个周期,进而网关节点中完成将第一配额调整为第二配 额,实现基于网关集群中所有网关节点第一周期内的配额使用情况,调整 第二周期内将集群配额分配给各个网关节点的配额分配比例,进而,实现 对第二周期内网关集群中所有网关节点的第二配额的动态调整,即实现全 局动态调整,进而使得每经过一个周期,网关集群的限流效果能够获得一 定提升,各网关节点的限流配额被充分利用,从而在保持限流性能的同时, 提高网关集群的限流精度,提高限流效果。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本 发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对 实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地, 对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以 根据这些附图获得其他的附图。
图1为本申请实施例提供的一种实际应用中网关集群的架构图;
图2为本申请实施例提供的另一种实际应用中网关集群的架构图;
图3为本申请实施例提供的一种网关控制方法的交互流程示意图;
图4为本申请实施例提供的图3中步骤S101的流程图;
图5为本申请实施例提供的一种网关节点的内部结构及网关节点和缓 存数据库之间的连接关系示意图;
图6为本申请实施例提供的一种网关控制方法的流程示意图;
图7为本申请实施例提供的一种网关控制装置的结构图;
图8为本申请实施例提供的另一种网关控制装置的结构图;
图9为本申请实施例提供的一种电子设备的结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本 申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描 述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施 例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动 的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种网关集群,该网关集群用于对API接口进行 限流(每个云服务具有至少一个API),图1为根据本申请一实施例提供的 网关集群的结构图。
如图1所示,本申请实施例中,网关集群包括:缓存数据库、配置中 心和多个网关节点,缓存数据库用于存储网关集群的总配额信息,网关集 群中的网关节点可以向缓存数据库申请流量额度。配置中心用于储存网关 集群整体的配置,多个网关节点分摊对云服务的API接口的限流功能,在 实际应用中,配置中心还可以集成于网关节点内部,由网关节点自行执行 相应的配置确定,此时的架构图如图2所示。
在实际应用中,客户端向服务器发送对某个API接口的访问请求时, 访问请求首先被发送至网关集群,网关集群将访问请求分发至相应的网关 节点,网关节点在接收到访问请求时,若该网关节点对于该API接口的本 地配额没有用尽,则响应该访问请求,为客户端提供服务,得到处理结果 后,再将处理结果发送至服务器。其中,客户端为实体设备,其可以是各 种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台 式计算机等。
作为一个实施例,客户端可以向网关集群发送访问请求,网关集群根 据该访问请求确定某个网关节点为该客户端提供服务,在高并发场景中, 多个客户端可能同时向网关集群发送访问请求,多个访问请求会根据预设 分配规则分发至相应的网关节点。
相关技术中,一般通过网关集群中各网关节点分摊总流量配额,如: 针对任一API接口,是由多个网关节点共同进行限流的,例如,用户针对 某个API接口预先配置限流值(即:缓存数据库中存储的总配额)每秒1000 个访问请求,则多个网关节点每秒分摊处理1000个访问请求的额度,在不 考虑备用配额时,假设有10个网关节点,则每个网关节点对于该API接口 每秒可以分摊到处理100个访问请求的额度。然而,由于负载均衡配置、 客户端长连接等问题,到达网关集群中各网关节点的流量一般不同,使得 某些请求量较大的网关节点在达到预先分配的流量配额时开始限流,而某 些请求量较小的网关节点的配额存在剩余,造成资源浪费。为此,基于上 述的网关集群,本申请实施例提供了一种网关控制方法,所述网关控制方 法可以应用于配置中心,本申请实施例将流量配额由缓存数据库管理,API 网关节点向缓存数据库申请额度、储存在本地缓存,并设置本地配额的有 效期。当请求到达时根据本地配额完成限流。本地配额有效期过后,归还 剩余配额并重新申请,下轮申请量由本地节点固定时间周期内的配额使用 监控决定申请的多少,从而限流配额的动态配置。
如图3所示,网关控制方法可以包括以下步骤:
步骤S101,配置中心获取网关集群中各网关节点的配额使用情况。
本申请实施例中,所述配额使用情况用于指示网关节点在第一周期内 的第一配额与实际访问量的匹配情况,所述第一配额为第一周期对应的初 始配额。
其中,第一周期指配额监控统计周期,通过监控网关节点在第一周期 内的实际访问量,可以在第一周期结束时统计网关节点在第一周期内的配 额使用情况。
第一周期的实际访问量可以指在第一周期内网关节点实际处理的访问 请求量,实际访问量可以是第一配额的一半,也可以是第一配额的1.25倍 等,配额使用情况可以为网关节点在第一周期内的第一配额与实际访问量 之间的比值,相应的,配额使用情况可以为整数,也可以为小数。
在第一周期的首个本地配额有效期的初始时刻,网关节点首次向缓存 数据库申请第一配额的流量额度,在第一配额被全部使用时,网关节点可 以再次向缓存数据库申请第一配额,缓存数据库从备用配额中为该网关节 点分配第一配额,直至缓存数据库中的备用配额被全部使用。本地配额有 效期结束时,若第一配额未被全部使用,网关节点归还剩余配额,在实际 应用中,可以在下一个本地配额有效期的起始时刻,按照第一配额与剩余配额的差值向缓存数据库申请配额,以保证每个本地配额有效期内,网关 节点可以处理访问请求的额度均为初始配额。因此,第一周期内的每个本 地配额有效期中,网关节点处理的访问请求量可能是不同的,实际访问量 为网关节点在第一周期的至少两个本地配额有效期内累计处理的访问请求 量。
网关节点在累计第一周期的至少两个本地配额有效期内处理的访问请 求量,得到实际访问量后,可以向配置中心发送。
步骤S102,配置中心基于所述配额使用情况,确定各网关节点之间的 配额分配比例。
由于不同网关节点在第一周期的配额使用情况不同,而缓存数据库中 可分配配额是有限的,为了适应不同网关节点在对配额的使用需求,需要 基于网关集群内多个网关节点的配额使用情况,调整下个周期(即第二周 期)内各网关节点之间的配额分配比例。
例如:网关集群包括:网关节点1、网关节点2和网关节点3,网关节 点1的配额使用情况为第一配额与实际访问量的匹配;网关节点2的配额 使用情况为第一配额为实际访问量的2倍,网关节点3的配额使用情况为 第一配额为实际访问量的一半。
由于网关节点2的配额使用情况为第一配额为实际访问量的2倍,网 关节点3的配额使用情况为第一配额为实际访问量的一半,表明第一周期 内网关节点2和网关节点3被分配的第一配额不合理,即网关节点2被分 配的第一配额不够用,网关节点3被分配的第一配额过多,基于此,在确 定第二周期的第二配额时,需要在可分配配额不变的情况下,增大可分配 配额中分配给网关节点2的第二配额的比例,减少可分配配额中分配给网 关节点3的第二配额的比例。
需要注意的是,本申请在基于配额使用情况确定各网关节点之间的配 额分配比例时,是基于网关集群中所有网关节点的配额使用情况,调整各 个网关节点之间的配额分配比例,实现基于全局(网关集群中的所有网关 节点)的动态调整(调整配额分配比例)。
步骤S103,配置中心基于集群配额及所述配额分配比例,确定所述第 一网关节点的第二配额。
在本申请实施例中,所述第一网关节点为所述网关集群中的任意一个 网关节点,所述第二配额为第二周期对应的初始配额,所述第二周期为与 所述第一周期相邻的下一个周期。第二周期可以包括至少两个本地配额有 效期,每个本地配额有效期在初始时刻处理访问请求(即访问量)的额度 为第二周期对应的初始配额。
所述集群配额为网关集群中多个网关节点的可分配配额,所述可分配 配额为所述缓存数据库的总配额或总配额中的部分配额。
也就是说,在缓存数据库中不设置备用配额时,集群配额等于用户针 对某个API接口预先配置的总配额,此时,可以按照配额分配比例将总配 额分配给各网关节点;在缓存数据库中设置备用配额时,集群配额等于总 配额减去备用配额后剩余的可分配配额,可分配配额可以按照配额分配比 例分配给各网关节点。
例如:假设集群配额为1000,网关集群包括:网关节点1、网关节点2 和网关节点3,网关节点1、网关节点2和网关节点3之间的配额分配比例 可以为1:2:1,则网关节点1被分配的第二配额为250,网关节点2被分配 的第二配额为500,网关节点3被分配的第二配额为250。
再例如:假设网关集群包括:网关节点4、网关节点5和网关节点6, 在第一周期,网关节点4、网关节点5和网关节点6之间的基础比例即第一 比例为1:1:1,若基于所述配额使用情况,确定网关节点4、网关节点5和 网关节点6之间的配额分配比例为1:2:0.5,则在第二周期,网关节点4的 第二配额变为第一配额的1倍,网关节点5的第二配额变为第一配额的2 倍,网关节点6的第二配额变为第一配额的0.5倍。
再例如:假设网关集群包括:网关节点7、网关节点8和网关节点9, 在第一周期,网关节点7、网关节点8和网关节点9之间的基础比例即第一 比例为1:1:1,若基于所述配额使用情况,确定网关节点7、网关节点8和 网关节点9之间的配额分配比例为2:2:2,由于多个网关节点的配额占比之 间的配额分配比例并未发生变化,即还是1:1:1,所以第二周期为网关节点7、网关节点8和网关节点9分配的流量配额实际没有变化。
步骤S104,配置中心向所述第一网关节点发送配额申请通知,所述配 额申请通知用于指示所述第一网关节点按照所述第二配额向缓存数据库申 请流量额度。
在配置中心计算得到第二配额后,可以向各网关节点发送配额申请通 知,配额申请通知中可以携带第二配额,以便于指示第一网关节点按照第 二配额向缓存数据库申请流量额度。
本申请实施例通过获取网关集群中各网关节点的配额使用情况,所述 配额使用情况用于指示网关节点在第一周期内的第一配额与实际访问量的 匹配情况,所述第一配额为第一周期对应的初始配额;基于所述配额使用 情况,确定各网关节点之间的配额分配比例;基于集群配额及所述配额分 配比例,确定所述第一网关节点的第二配额,所述第一网关节点为所述网 关集群中的任意一个网关节点,所述第二配额为第二周期对应的初始配额, 所述第二周期为与所述第一周期相邻的下一个周期;向所述第一网关节点 发送配额申请通知,所述配额申请通知用于指示所述第一网关节点按照所 述第二配额向缓存数据库申请流量额度。
也就是说,本申请实施例可以基于网关集群中各网关节点的配额使用 情况动态确定配额分配比例,按照配额分配比例对集群配额进行分配,实 现基于网关集群中所有网关节点第一周期内的配额使用情况,调整第二周 期内将集群配额分配给各个网关节点的配额分配比例,进而,实现对第二 周期内网关集群中所有网关节点的第二配额的动态调整,即实现全局动态 调整,进而使得每经过一个周期,网关集群的限流效果能够获得一定提升, 各网关节点的限流配额被充分利用,从而在保持限流性能的同时,提高网 关集群的限流精度,提高限流效果。
在本申请的又一实施例中,如图4所示,所述步骤S101配置中心获取 网关集群中各网关节点的配额使用情况,包括:
步骤S201,配置中心获取所述网关集群中各所述网关节点在第一周期 内多个本地配额有效期累计处理的实际访问量;
在该步骤中,在网关节点向配置中心发送在第一周期内,至少两个本 地配额有效期内累计处理的访问请求量,即实际访问量后,可以获取该实 际访问量。
示例性的,假设第一周期包括5个本地配额有效期,第一配额为250, 第一周期的首个本地配额有效期处理的访问请求量为100,第二个本地配额 有效期处理的访问请求量为320,第三个本地配额有效期处理的访问请求量 为280,第四个本地配额有效期处理的访问请求量为200,第五个本地配额 有效期处理的访问请求量为100,则该网关节点在第一周期累计处理的实际 访问量为100+320+280+200+50=1000。
步骤S202,配置中心基于各网关节点的实际访问量与第一配额,确定 各网关节点的配额使用情况。
本申请实施例中,可以针对每个网关节点,计算该网关节点实际访问 量与第一配额的比值,得到该网关节点的配额使用情况。
例如:网关节点1的第一配额为250,实际访问量为250,则配额使用 情况为的匹配;网关节点2的第一配额为500,实际访问量为250,则配额 使用情况为实际访问量是第一配额的一半,网关节点3的第一配额为250, 实际访问量为500,则配额使用情况为实际访问量是第一配额的2倍。
本申请实施例能够自动基于各网关的实际访问量及第一配额,计算各 网关节点的配额使用情况。
本申请实施例中,第一周期可以包括至少两个本地配额有效期,每个 本地配额有效期在初始时刻处理访问请求(即访问量)的额度为第一周期 对应的初始配额。
在实际应用中,还可以将网关节点的第一配额与实际访问量的比值, 得到该网关节点的配额使用情况。
例如:网关节点1的第一配额为250,实际访问量为250,则配额使用 情况为第一配额与实际访问量的匹配;网关节点2的第一配额为500,实际 访问量为250,则配额使用情况为第一配额为实际访问量的2倍,网关节点3的第一配额为250,实际访问量为500,则配额使用情况为第一配额为实 际访问量的一半。
在本申请的又一实施例中,所述步骤S101,基于所述配额使用情况, 确定各网关节点之间的配额分配比例,包括:
在本申请的一种实施方式中,可以将第一配额与实际访问量的商,作 为配额占比,将多个网关节点的配额占比之间的比例关系作为配额分配占 比。
例如:网关节点1的配额占比为1,网关节点2的配额占比为2,网关 节点3的配额占比为0.5,则网关节点1、网关节点2和网关节点3之间的 配额分配比例为1:2:0.5。
在本申请的另一种实施方式中,配置中心可以预先设置第一比例,第 一比例为所述配额分配比例的基础比例。假设网关集群中包括4个网关节 点,第一比例可以设置为预设比例,如:1:1:1:1;也可以设置为预设权重系 数乘以第一周期的配额分配比例,得到的比例,如:第一周期的配额分配 比例为2:4:1:2,权重系数为0.5,则第一比例可以为1:2:0.5:1等等。
然后,配置中心在第一比例基础上,基于各网关节点的配额使用情况, 对各网关节点的配额占比进行调整;
具体地,配置中心在第一比例基础上,基于各网关节点的配额使用情 况,对各网关节点的配额占比进行调整,包括:
对任意一个网关节点而言,当所述配额使用情况指示该网关节点在第 一周期内的第一配额满足实际访问量时,配置中心减小该网关节点在所述 第一比例中的配额占比。反之,对任意一个网关节点而言,当所述配额使 用情况指示该网关节点在第一周期内的第一配额不满足实际访问量时,增 大该网关节点在所述第一比例中的配额占比。
本发明实施例中,第一配额满足实际访问量是指第一配额过剩,即第 一配额与实际访问量之比大于1,此时需要减小该网关节点在所述第一比例 中的配额占比;第一配额不满足实际访问量是指第一配额不够用,即第一 配额与实际访问量之比小于1,此时需要增大该网关节点在所述第一比例中 的配额占比。
增大或者减小该网关节点在所述第一比例中的配额占比的方式包括: 在配额占比配额占比的基础上乘以一个大于1或者小于1的权重系数,在 配额占比的基础上直接加或者减固定数值,或者其它任意方式,固定数值 可以根据实际情况设置。
例如,以在原始的配额占比的基础上乘以一个大于1或者小于1的权 重系数的方式增大或者减小该网关节点在所述第一比例中的配额占比为 例:网关节点2的第一配额为实际访问量的2倍,则第一配额与实际访问 量之比为2,2>1,表明第一配额过剩,则配置中心需要减小该网关节点在 所述第一比例中的配额占比,若网关节点2在第一周期内原始的配额占比 为1,则网关节点2在第二周期的配额占比将减小,如:减小一半,得到新 的配额占比0.5;网关节点3的第一配额为实际访问量的一半,则第一配额 与实际访问量之比0.5,0.5<1,表明第一配额不够用,则配置中心需要增 加该网关节点在所述第一比例中的配额占比,若网关节点2在第一周期内 原始的配额占比为1,则网关节点3在第二周期的配额占比将增加,如:增 加2倍,得到新的配额占比2。
再例如,以在原始的配额占比的基础上在配额占比的基础上直接加或 者减固定数值的方式,增大或者减小该网关节点在所述第一比例中的配额 占比为例:网关节点7的第一配额为实际访问量的3倍,则第一配额与实 际访问量之比为3,3>1,表明第一配额过剩,则配置中心可以减小该网关 节点在所述第一比例中的配额占比,若网关节点2在第一周期内的配额占 比为5,则网关节点2在第二周期的配额占比将减小,如:减小3,得到新 的配额占比2;网关节点8的第一配额为实际访问量的0.2倍,则第一配额 与实际访问量之比0.2,0.2<1,表明第一配额不够用,则配置中心需要增 加该网关节点在所述第一比例中的配额占比,若网关节点8在第一周期内 的配额占比为3,则网关节点8在第二周期的配额占比将增加,如:增加5, 得到新的配额占比8。
最后,配置中心获取各网关节点调整后的配额占比之间的比例,得到 各网关节点之间的配额分配比例。
在该步骤中,可以计算各网关节点调整后的配额占比之间的比例,如: 0.5:2,0.5:2(即1:4)即为各网关节点之间的配额分配比例。
本申请实施例可以根据基于以所述第一比例为基础的所述配额使用情 况和所述实际访问量计算得到的比值自动调整各网关节点的配额分配比 例。
在本发明的又一实施例中,还提供一种网关控制方法,应用于网关节 点,如图5所示,每个网关节点内包括API网关限流模块,API网关限流模 块为网关节点内提供限流功能的模块,API网关限流模块可以与缓存数据库 通信。API网关限流模块中包括:本地缓存和配额监控模块,本地缓存可以 与配额监控模块通信。本地缓存中用于存储多个API接口在本地配额有效 期内的限流配额及本地配额有效期的时长等,配额监控模块用于监控每个本地配额有效期的配额使用情况(如:预设配额是否耗尽、是否额外申请 备用配额,额外申请备用配额的次数及每次本地配额有效期结束时的剩余 配额等),并将配额使用情况上报给配置中心,以便配置中心根据各个网关 节点内的配额监控模块上报的配额使用情况,进而确定是否需要动态调整 预设配额。
如图3所示,所述网关控制方法可以包括以下步骤:
步骤S301,网关节点向配置中心发送实际访问量。
本发明实施例中,所述实际访问量为网关节点在第一周期内累计处理 的访问请求量;
网关集群中的每个网关节点可以自动监控第一周期内每个本地配额有 效期中网关节点实际处理的访问请求量,在第一周期结束时,将每个本地 配额有效期中网关节点实际处理的访问请求量累加,得到实际访问量,并 向配置中心发送该累加得到的实际访问量。
步骤S302,网关节点接收来自于所述配置中心的配额申请通知。
本申请实施例中,所述配额申请通知用于指示所述网关节点按照所述 第二配额向缓存数据库申请流量额度;
步骤S303,网关节点向缓存数据库发送第一获取请求。
本发明实施例中,所述第一获取请求用于指示所述缓存数据库按照所 述第二配额为所述网关节点分配流量额度,所述第二配额为第二周期对应 的初始配额。
本发明实施例中,缓存数据库用于存储网关集群的总配额信息。
步骤S304,网关节点接收来自于缓存数据库的第二配额,第二配额用 于控制第二周期的访问请求量。
本发明实施例中,所述第二周期为与所述第一周期相邻的下一个周期, 网关节点的本地缓存用于存储各API接口对应的限流配额及本地配额有效 期,本地配额有效期为用户设置,限流配额及本地配额有效期分别作为内 存变量存储。
本发明实施例通过向配置中心发送实际访问量,所述实际访问量为网 关节点在第一周期内累计处理的访问请求量;接收来自于所述配置中心的 配额申请通知,所述配额申请通知用于指示所述网关节点按照所述第二配 额向缓存数据库申请流量额度;向缓存数据库发送第一获取请求,所述第 一获取请求用于指示所述缓存数据库按照所述第二配额为所述网关节点分 配流量额度,所述第二配额为第二周期对应的初始配额,所述第二周期为 与所述第一周期相邻的下一个周期;接收来自于缓存数据库的第二配额, 第二配额用于控制第二周期的访问请求量,进而网关节点中完成将第一配 额调整为第二配额。
本发明实施例实现基于网关集群中所有网关节点第一周期内的配额使 用情况,调整第二周期内将集群配额分配给各个网关节点的配额分配比例, 进而,实现对第二周期内网关集群中所有网关节点的第二配额的动态调整, 即实现全局动态调整,进而使得每经过一个周期,网关集群的限流效果能 够获得一定提升,各网关节点的限流配额被充分利用,从而在保持限流性 能的同时,提高网关集群的限流精度,提高限流效果。
在本发明的又一实施例中,所述第二周期包括多个本地配额有效期, 所述第二周期对应的第二配额是各本地配额有效期的初始配额,即,每个 本地配额有效期在初始时刻处理访问请求(即访问量)的额度为第二周期 对应的初始配额;
所述方法还包括:
网关节点在任意一个所述本地配额有效期内,利用所述第二配额控制 该本地配额有效期内的访问请求量。
在本地配额有效期内,网关节点每接受到一个访问请求,网关节点每 接收到一个访问请求,可以将第二配额减一,若第二配额减一之后的结果 不为0,则可以确定第二配额未被全部使用,在第二配额未被全部使用时, 可以继续等待接收下一个访问请求;若第二配额减一之后的结果为0,可以 确定第二配额被全部使用,此时,可以,从缓存数据库按照第二配额申请 备用配额,这样,下一个本地配额有效期的初始配额将仍为第二配额。
在第二周期结束时,可以将第二周期内至少两个本地配额有效期的访 问请求量进行累加,得到实际访问量,将实际访问量发送给配置中心,以 便配置中心动态调整下一周期的初始配额使用。
在本发明的又一实施例中,如图6所示,所述方法还包括:
步骤S401,当接收到来自于客户端的访问请求时,网关节点确定在当 前本地配额有效期内,与所述第二周期对应的所述第二配额是否被全部使 用。
在实际应用中,客户端的访问请求会被分配到网关集群中的任一网关 节点,则对于该网关节点来说,可以接收到任一客户端的访问请求。
由于第二周期内包含至少两个本地配额有效期,示例性的,第二周期 为10秒,每个本地配额有效期为1秒,每个本地配额有效期内均可以接收 客户端的访问请求。
由于每个网关节点在第二周期内对应的限流配额为第二配额,所以, 在第二周期内的每个本地配额有效期中,网关节点可以首次向缓存数据库 申请的限流配额为第一配额,并存储于本地缓存。
网关节点每接收到一个访问请求,可以将第一配额减一,若第一配额 减一之后的结果为0,可以确定第一配额被全部使用;若第一配额减一之后 的结果不为0,则可以确定第一配额未被全部使用。
步骤S402,若所述第二配额被全部使用,网关节点向所述缓存数据库 发送第二获取请求。
本申请实施例中,所述第二获取请求用于请求所述缓存数据库在备用 配额中为所述网关节点分配流量额度,所述缓存数据库的总配额是所述备 用配额与网关集群中多个网关节点的可分配配额之和。
在缓存数据库中设置备用配额时,总配额可以包括可分配配额和备用 配额,备用配额用于在每个本地配额有效期内,在初始配额被全部使用时, 供各网关节点申请时使用。
例如:针对某个API接口,用户配置每秒1000个访问请求,假设预留 比例为20%,则备用配额为200,可分配配额为800,假设网关集群有10 个网关节点,则在首个周期内的第一个本地配额有效期中,每个网关节点 首次被分配的第一配额为80,在任一网关节点首次申请的第一配额被全部 使用且该本地配额有效期还未结束时,该网关节点可以向缓存数据库发送 请求,缓存数据库可以从备用配额中再次为该网关节点分配第一配额的流 量配额,即再次为该网关节点分配80的流量配额,直至备用配额被全部使 用。后续的第二周期内,可以按照第二配额对可分配配额800进行分配。
在第一配额未被全部使用且本地配额有效期未结束时,可以重新执行 步骤401,直至第一配额被全部使用且本地配额有效期未结束时,执行步骤 403。
步骤S403,网关节点接收来自于所述缓存数据库的响应消息,并基于 所述响应消息,限制所述访问请求的访问或响应所述访问请求。
本申请实施例能够在接收到客户端的访问请求,在第二配额不足时, 自动从缓存数据库申请备用配额,并基于从缓存数据库获取的第二配额, 限制所述访问请求的访问或响应所述访问请求。
具体地,所述步骤S403,基于所述响应消息,限制所述访问请求的访 问或响应所述访问请求,包括:
步骤501,当所述响应消息指示分配备用配额时,网关节点获取所述缓 存数据库在备用配额中为所述网关节点分配的第三配额;
在实际应用中,第三配额可以与第二周期对应的第二配额相同,例如: 第二配额为80,则第三配额也为80。
在缓存数据库的备用配额被全部使用,缓存数据库会向该网关节点发 送分配失败响应,网关节点接收到分配失败响应后,启动限流,即限制该 访问请求的访问。
可以理解的是,在本地配额有效期未结束时,若某个网关节点接收到 分配失败响应,则该网关节点对后续再接收到访问请求,且后续接收到的 访问请求也用于请求访问该访问请求所请求的API接口,则对后续接收到 的访问请求进行限流;对请求访问该网关节点内其它API接口的访问请求 不进行限流,直至其它API接口的备用配额也全部被使用,启动限流。
其它网关节点若接收到访问请求,该访问请求也用于请求访问该访问 请求所请求的API接口,若该其它网络节点的第二配额未被全部使用,则 正常处理该访问请求;若该其它网络节点的第二配额也全部被使用,则由 于也会接收到缓存数据库的分配失败响应,所以其它网关节点也会启动限 流。
若接收到来自于所述缓存数据库的分配成功响应,表明备用配额未被 全部使用,可以为该网关节点分配备用配额,本发明实施例中,第三配额 可以等于第一配额,也可以不等于第一配额,在接收到第三配额时,将第 三配额存储与本地缓存。
步骤502,网关节点基于所述第三配额,更新本地配额,使得更新后的 本地配额为第三配额与所述第二配额之和;
由于此时第二配额已全部使用,所以此时本地配额实际相当于是第三 配额。
步骤503,若所述更新后的本地配额未被全部使用,网关节点响应所述 访问请求;
步骤504,若所述更新后的本地配额被全部使用,网关节点限制所述访 问请求的访问。
本申请实施例能够在第二配额被全部使用时,基于从缓存数据库的备 用配额中申请的第三配额对访问请求进行响应或者限制。也就是说,本发 明实施例能够在任一本地配额有效期内,在接收到访问请求时,基于当前 本地配额的使用状态,实现对访问请求的响应或限制;另外,通过在备用 配额中申请第三配额,相对于在某一网关节点首次分配的第一限额全部使 用时即启动限流来说,由于增加了第三配额,而第三配额被全部使用也会消耗时间,所以,可以延后该网关节点启动限流的时间,提高限流效果。
在本发明的又一实施例中,所述方法还包括:
步骤501,若本地配额有效期结束,网关节点获取本地缓存中当前剩余 的剩余配额;
步骤502,网关节点基于所述第二配额与所述剩余配额,计算所述本地 配额有效期结束时相对于所述本地配额有效期开始时的配额减少量,得到 第四配额;
步骤503,网关节点向所述缓存数据库发送第三获取请求。
本发明实施例中,所述第三获取请求用于指示所述缓存数据库在下一 本地配额有效期按照所述第四配额分配流量额度,以保证下个本地配额有 效期开始时,初始配额为第二配额。
假设第一配额为80,本地配额有效期结束时,使用掉20,剩余60,则 可以向缓存数据库申请20,即利用备用配额补充使用掉的配额,使补充后 的本地配额重新恢复为第二配额。
本发明实施例能够在每个本地配额有效期结束时,自动根据当前本地 配额有效期内本地配额的使用情况,向缓存数据库申请第四配额,也即相 当于是将剩余配额归还至缓存数据库,然后再从缓存数据库申请一个第一 配额,归还并重新申请配额,实现配额的过期归还机制,保持限流性能的 同时,提高网关集群的限流精度。
在本发明的又一实施例中,还提供一种网关集群,包括:配置中心和 多个网关节点;
其中,所述配置中心,用于执行如应用于配置中心的任一所述的网关 控制方法;
任意一个所述网关节点,用于执行如应用于网关节点的任一所述的网 关控制方法。
在本发明的又一实施例中,还提供一种网关控制装置,应用于配置中 心,如图7所示,所述装置包括:
第一获取模块11,用于获取网关集群中各网关节点的配额使用情况, 所述配额使用情况用于指示网关节点在第一周期内的第一配额与实际访问 量的匹配情况,所述第一配额为第一周期对应的初始配额;
第一确定模块12,用于基于所述配额使用情况,确定各网关节点之间 的配额分配比例;
第二确定模块13,用于基于集群配额及所述配额分配比例,确定所述 第一网关节点的第二配额,所述第一网关节点为所述网关集群中的任意一 个网关节点,所述第二配额为第二周期对应的初始配额,所述第二周期为 与所述第一周期相邻的下一个周期;
第一发送模块14,用于向所述第一网关节点发送配额申请通知,所述 配额申请通知用于指示所述第一网关节点按照所述第二配额向缓存数据库 申请流量额度。
可选地,所述获取模块11,包括:
第一获取单元,用于获取所述网关集群中各所述网关节点在第一周期 内多个本地配额有效期累计处理的实际访问量;
确定单元,用于基于各网关节点的实际访问量与第一配额,确定各网 关节点的配额使用情况。
可选地,第一确定模块12,包括:
调整单元,用于在第一比例基础上,基于各网关节点的配额使用情况, 对各网关节点的配额占比进行调整;
获取单元,用于获取各网关节点调整后的配额占比之间的比例,得到 各网关节点之间的配额分配比例;其中,所述第一比例为所述配额分配比 例的基础比例。
可选地,所述调整单元,还用于:
对任意一个网关节点而言,当所述配额使用情况指示该网关节点在第 一周期内的第一配额满足实际访问量时,减小该网关节点在所述第一比例 中的配额占比;
对任意一个网关节点而言,当所述配额使用情况指示该网关节点在第 一周期内的第一配额不满足实际访问量时,增大该网关节点在所述第一比 例中的配额占比。
可选地,所述集群配额为网关集群中多个网关节点的可分配配额,所 述可分配配额为所述缓存数据库的总配额或总配额中的部分配额。
在本发明的又一实施例中,还提供一种网关控制装置,应用于网关节 点,如图8所示,所述装置包括:
第二发送模块21,用于向配置中心发送实际访问量,所述实际访问量 为网关节点在第一周期内累计处理的访问请求量;
第一接收模块22,用于接收来自于所述配置中心的配额申请通知,所 述配额申请通知用于指示所述网关节点按照所述第二配额向缓存数据库申 请流量额度;
第三发送模块23,用于向缓存数据库发送第一获取请求,所述第一获 取请求用于指示所述缓存数据库按照所述第二配额为所述网关节点分配流 量额度;
第二接收模块24,用于接收来自于缓存数据库的第二配额,第二配额 用于控制第二周期的访问请求量,所述第二周期为与所述第一周期相邻的 下一个周期。
可选地,所述第二周期包括多个本地配额有效期,所述第二周期对应 的第二配额是各本地配额有效期的初始配额;
所述装置还包括:控制模块;
所述控制模块,用于在任意一个所述本地配额有效期内,利用所述第 二配额控制该本地配额有效期内的访问请求量。
可选地,所述装置还包括:
第三确定模块,用于当接收到来自于客户端的访问请求时,确定在当 前本地配额有效期内,与所述第二周期对应的所述第二配额是否被全部使 用;
第四发送模块,用于若所述第二配额被全部使用,向所述缓存数据库 发送第二获取请求,所述第二获取请求用于请求所述缓存数据库在备用配 额中为所述网关节点分配流量额度,所述缓存数据库的总配额是所述备用 配额与网关集群中多个网关节点的可分配配额之和;
第三接收模块,用于接收来自于所述缓存数据库的响应消息,并基于 所述响应消息,限制所述访问请求的访问或响应所述访问请求。
可选地,所述第三接收模块,包括:
第二获取单元,用于当所述响应消息指示分配备用配额时,获取所述 缓存数据库在备用配额中为所述网关节点分配的第三配额;
更新单元,用于基于所述第三配额,更新本地配额,使得更新后的本 地配额为第三配额与所述第二配额之和;
响应单元,用于若所述更新后的本地配额未被全部使用,响应所述访 问请求;
限制单元,用于若所述更新后的本地配额被全部使用,限制所述访问 请求的访问。
可选地,所述装置还包括:
第二获取模块,用于若本地配额有效期结束,获取本地缓存中当前剩 余的剩余配额;
计算模块,用于基于所述第二配额与所述剩余配额,计算所述本地配 额有效期结束时相对于所述本地配额有效期开始时的配额减少量,得到第 四配额;
第五发送模块,向所述缓存数据库发送第三获取请求,所述第三获取 请求用于指示所述缓存数据库在下一本地配额有效期按照所述第四配额分 配流量额度,以保证下个本地配额有效期开始时,初始配额为第二配额。
在本申请的又一实施例中,还提供一种电子设备,包括处理器、通信 接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总 线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现应用于配置中心的 任一所述的网关控制方法或者应用于网关节点的任一所述的网关控制方 法。
上述电子设备提到的通信总线1140可以是外设部件互连标准(PeripheralComponentInterconnect,简称PCI)总线或扩展工业标准结构 (ExtendedIndustryStandardArchitecture,简称EISA)总线等。该通信总线1140 可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一 条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1120用于上述电子设备与其他设备之间的通信。
存储器1130可以包括随机存取存储器(RandomAccessMemory,简称 RAM),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁 盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储 装置。
上述的处理器1110可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称 NP)等;还可以是数字信号处理器(DigitalSignalProcessing,简称DSP)、专 用集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC)、现场可编程 门阵列(Field-ProgrammableGateArray,简称FPGA)或者其他可编程逻辑器 件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明的又一实施例中,还提供一种计算机可读存储介质,所述计 算机可读存储介质上存储有网关控制方法的程序,所述网关控制方法的程 序被处理器执行时前述任一应用于配置中心的方法实施例所述的网关控制 方法或者前述任一应用于网关节点的方法实施例所述的网关控制方法的步 骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅 用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或 者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术 语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得 包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还 包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或 者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……” 限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还 存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或 实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而 易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情 况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这 些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范 围。
Claims (15)
1.一种网关控制方法,其特征在于,应用于配置中心,所述方法包括:
获取网关集群中各网关节点的配额使用情况,所述配额使用情况用于指示网关节点在第一周期内的第一配额与实际访问量的匹配情况,所述第一配额为第一周期对应的初始配额,所述第一周期包括多个本地配额有效期,每个所述本地配额有效期的起始时刻,初始配额为所述第一配额,在任一所述本地配额有效期内若流量额度不足,以所述第一配额为单位从缓存数据库的备用配额中获取配额,直至所述备用配额用尽,在所述本地配额有效期的结束时刻,若配额未被全部使用,按照当前本地配额有效期的配额减少量向所述备用配额申请配额,以使下个本地配额有效期的起始时刻,初始配额为所述第一配额,所述实际访问量为网关节点在第一周期的至少两个本地配额有效期内累计处理的访问请求量;
基于所述配额使用情况,确定各网关节点之间的配额分配比例;
基于集群配额及所述配额分配比例,确定第一网关节点的第二配额,所述第一网关节点为所述网关集群中的任意一个网关节点,所述第二配额为第二周期对应的初始配额,所述第二周期为与所述第一周期相邻的下一个周期;
向所述第一网关节点发送配额申请通知,所述配额申请通知用于指示所述第一网关节点按照所述第二配额向缓存数据库申请流量额度。
2.根据权利要求1所述的网关控制方法,其特征在于,所述获取网关集群中各网关节点的配额使用情况,包括:
获取所述网关集群中各所述网关节点在第一周期内多个本地配额有效期累计处理的实际访问量;
基于各网关节点的实际访问量与第一配额,确定各网关节点的配额使用情况。
3.根据权利要求1所述的网关控制方法,其特征在于,基于所述配额使用情况,确定各网关节点之间的配额分配比例,包括:
在第一比例基础上,基于各网关节点的配额使用情况,对各网关节点的配额占比进行调整;
获取各网关节点调整后的配额占比之间的比例,得到各网关节点之间的配额分配比例;其中,所述第一比例为所述配额分配比例的基础比例。
4.根据权利要求3所述的网关控制方法,其特征在于,所述在第一比例基础上,基于各网关节点的配额使用情况,对各网关节点的配额占比进行调整,包括:
对任意一个网关节点而言,当所述配额使用情况指示该网关节点在第一周期内的第一配额满足实际访问量时,减小该网关节点在所述第一比例中的配额占比;
对任意一个网关节点而言,当所述配额使用情况指示该网关节点在第一周期内的第一配额不满足实际访问量时,增大该网关节点在所述第一比例中的配额占比。
5.根据权利要求1所述的网关控制方法,其特征在于,所述集群配额为网关集群中多个网关节点的可分配配额,所述可分配配额为所述缓存数据库的总配额或总配额中的部分配额。
6.一种网关控制装置,其特征在于,应用于配置中心,所述装置包括:
获取模块,用于获取网关集群中各网关节点的配额使用情况,所述配额使用情况用于指示网关节点在第一周期内的第一配额与实际访问量的匹配情况,所述第一配额为第一周期对应的初始配额,所述第一周期包括多个本地配额有效期,每个所述本地配额有效期的起始时刻,初始配额为所述第一配额,在任一所述本地配额有效期内若流量额度不足,以所述第一配额为单位从缓存数据库的备用配额中获取配额,直至所述备用配额用尽,在所述本地配额有效期的结束时刻,若配额未被全部使用,按照当前本地配额有效期的配额减少量向所述备用配额申请配额,以使下个本地配额有效期的起始时刻,初始配额为所述第一配额,所述实际访问量为网关节点在第一周期的至少两个本地配额有效期内累计处理的访问请求量;
第一确定模块,用于基于所述配额使用情况,确定各网关节点之间的配额分配比例;
第二确定模块,用于基于集群配额及所述配额分配比例,确定第一网关节点的第二配额,所述第一网关节点为所述网关集群中的任意一个网关节点,所述第二配额为第二周期对应的初始配额,所述第二周期为与所述第一周期相邻的下一个周期;
第一发送模块,用于向所述第一网关节点发送配额申请通知,所述配额申请通知用于指示所述第一网关节点按照所述第二配额向缓存数据库申请流量额度。
7.一种网关控制方法,其特征在于,应用于网关节点,所述方法包括:
向配置中心发送实际访问量,所述实际访问量为网关节点在第一周期内累计处理的访问请求量,所述配置中心应用如权利要求6所述的网关控制装置;
接收来自于所述配置中心的配额申请通知,所述配额申请通知用于指示所述网关节点按照第二配额向缓存数据库申请流量额度;
向缓存数据库发送第一获取请求,所述第一获取请求用于指示所述缓存数据库按照所述第二配额为所述网关节点分配流量额度;
接收来自于缓存数据库的第二配额,第二配额用于控制第二周期的访问请求量,所述第二周期为与所述第一周期相邻的下一个周期。
8.根据权利要求7所述的网关控制方法,其特征在于,所述第二周期包括多个本地配额有效期,所述第二周期对应的第二配额是各本地配额有效期的初始配额;
所述方法还包括:
在任意一个所述本地配额有效期内,利用所述第二配额控制该本地配额有效期内的访问请求量。
9.根据权利要求7或8所述的网关控制方法,其特征在于,所述方法还包括:
当接收到来自于客户端的访问请求时,确定在当前本地配额有效期内,与所述第二周期对应的所述第二配额是否被全部使用;
若所述第二配额被全部使用,向所述缓存数据库发送第二获取请求,所述第二获取请求用于请求所述缓存数据库在备用配额中为所述网关节点分配流量额度,所述缓存数据库的总配额是所述备用配额与网关集群中多个网关节点的可分配配额之和;
接收来自于所述缓存数据库的响应消息,并基于所述响应消息,限制所述访问请求的访问或响应所述访问请求。
10.根据权利要求9所述的网关控制方法,其特征在于,所述基于所述响应消息,限制所述访问请求的访问或响应所述访问请求,包括:
当所述响应消息指示分配备用配额时,获取所述缓存数据库在备用配额中为所述网关节点分配的第三配额;
基于所述第三配额,更新本地配额,使得更新后的本地配额为第三配额与所述第二配额之和;
若所述更新后的本地配额未被全部使用,响应所述访问请求;
若所述更新后的本地配额被全部使用,限制所述访问请求的访问。
11.根据权利要求7所述的网关控制方法,其特征在于,所述方法还包括:
若本地配额有效期结束,获取本地缓存中当前剩余的剩余配额;
基于所述第二配额与所述剩余配额,计算所述本地配额有效期结束时相对于所述本地配额有效期开始时的配额减少量,得到第四配额;
向所述缓存数据库发送第三获取请求,所述第三获取请求用于指示所述缓存数据库在下一本地配额有效期按照所述第四配额分配流量额度,以保证下个本地配额有效期开始时,初始配额为第二配额。
12.一种网关集群,其特征在于,包括:配置中心和多个网关节点;
所述配置中心,用于执行如权利要求1至5任一所述的网关控制方法;
任意一个所述网关节点,用于执行如权利要求7至11任一所述的网关控制方法。
13.一种网关控制装置,其特征在于,应用于网关节点,所述装置包括:
第二发送模块,用于向配置中心发送实际访问量,所述实际访问量为网关节点在第一周期内累计处理的访问请求量,所述配置中心应用如权利要求6所述的网关控制装置;
第一接收模块,用于接收来自于所述配置中心的配额申请通知,所述配额申请通知用于指示所述网关节点按照第二配额向缓存数据库申请流量额度;
第三发送模块,用于向缓存数据库发送第一获取请求,所述第一获取请求用于指示所述缓存数据库按照所述第二配额为所述网关节点分配流量额度;
第二接收模块,用于接收来自于缓存数据库的第二配额,第二配额用于控制第二周期的访问请求量,所述第二周期为与所述第一周期相邻的下一个周期。
14.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1~5任一所述的网关控制方法或者权利要求7~11任一所述的网关控制方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有网关控制方法的程序,所述网关控制方法的程序被处理器执行时实现权利要求1-5任一所述的网关控制方法或者7-11任一所述的网关控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110925748.2A CN113691596B (zh) | 2021-08-12 | 2021-08-12 | 一种网关控制方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110925748.2A CN113691596B (zh) | 2021-08-12 | 2021-08-12 | 一种网关控制方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113691596A CN113691596A (zh) | 2021-11-23 |
CN113691596B true CN113691596B (zh) | 2023-06-30 |
Family
ID=78579631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110925748.2A Active CN113691596B (zh) | 2021-08-12 | 2021-08-12 | 一种网关控制方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113691596B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114157614A (zh) * | 2021-11-30 | 2022-03-08 | 上海派拉软件股份有限公司 | 一种资源管理方法、装置、设备及存储介质 |
CN114567551B (zh) * | 2022-02-25 | 2023-08-29 | 中国农业银行股份有限公司 | 一种集群的升级方法、装置、电子设备和存储介质 |
CN117424861B (zh) * | 2023-12-18 | 2024-02-23 | 本溪钢铁(集团)信息自动化有限责任公司 | 一种网络资源管理方法、装置、设备及介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905342A (zh) * | 2014-04-03 | 2014-07-02 | 西安电子科技大学 | 基于接收统计的上行信道动态分配方法 |
US9819596B2 (en) * | 2015-02-24 | 2017-11-14 | Qualcomm Incorporated | Efficient policy enforcement using network tokens for services C-plane approach |
CN105897484A (zh) * | 2016-06-01 | 2016-08-24 | 努比亚技术有限公司 | 一种流量管理装置、服务器和方法 |
CN110138756B (zh) * | 2019-04-30 | 2021-05-25 | 网宿科技股份有限公司 | 一种限流方法及系统 |
-
2021
- 2021-08-12 CN CN202110925748.2A patent/CN113691596B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113691596A (zh) | 2021-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113691596B (zh) | 一种网关控制方法、装置、电子设备及存储介质 | |
CN110049130B (zh) | 一种基于边缘计算的服务部署和任务调度方法及装置 | |
CN108667748B (zh) | 一种控制带宽的方法、装置、设备和存储介质 | |
CN110519183B (zh) | 一种节点限速的方法、装置、电子设备及存储介质 | |
RU2265881C2 (ru) | Система и способ назначения коэффициента, основанного на векторе постоянства | |
CA2935246C (en) | Method, system and apparatus for adaptive quota determination for shared resources | |
CN105897484A (zh) | 一种流量管理装置、服务器和方法 | |
US9405588B2 (en) | Cloud resource allocation system and method | |
CN108667882B (zh) | 基于动态权重调整的负载均衡方法、装置和电子设备 | |
CN110297698B (zh) | 一种多优先级动态限流方法、装置、服务器及存储介质 | |
CN114205361B (zh) | 一种负载均衡方法以及服务器 | |
CN112887228A (zh) | 云资源管理方法、装置、电子设备及计算机可读存储介质 | |
CN110636388A (zh) | 一种业务请求分配方法、系统、电子设备及存储介质 | |
CN113190329A (zh) | 服务器及容器云集群资源自动伸缩的方法 | |
CN109428926B (zh) | 一种调度任务节点的方法和装置 | |
CN111523002B (zh) | 一种主键分配方法、装置、服务器及存储介质 | |
WO2019034091A1 (zh) | 分布式数据计算的分配方法、装置、服务器及存储介质 | |
CN106131187B (zh) | 一种授权的控制方法及装置 | |
CN115794396A (zh) | 资源分配的方法、系统和电子设备 | |
CN115695435A (zh) | 动态调整节点流量的方法、装置、电子设备及存储介质 | |
KR101719724B1 (ko) | 자원 제공 시스템 및 방법, 그리고 이의 자원 사용료 결정 방법 | |
CN111787040A (zh) | 回源、资源请求处理方法和装置、电子设备及计算机可读存储介质 | |
CN113810443B (zh) | 资源管理方法、系统、代理服务器及存储介质 | |
CN118170549B (zh) | 资源分配方法、装置及电子设备 | |
CN115834712B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |