利索能及
我要发布
收藏
专利号: 2021116636040
申请人: 北京市商汤科技开发有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2026-05-14
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种流量控制方法,其特征在于,应用于应用程序接口API网关,所述方法包括:

响应于接收到客户端发送的访问请求,对所述访问请求进行认证鉴权;其中,所述访问请求至少携带应用程序管理系统为所述客户端签发的访问密钥;

在所述访问请求通过鉴权的情况下,获取所述应用程序管理系统配置的流控配置信息;其中,所述流控配置信息包括针对所述访问密钥访问应用服务器的至少两个通过键值对的方式定义的流控目标,所设置的每一所述流控目标在不同时间粒度下的流量控制阈值;所述流控目标包括以下至少两个:所述访问密钥、所述访问密钥对应的应用和所述应用所属的租户;所述租户包括多个应用;每一所述应用包括多个访问密钥;所述应用用于发送访问请求并获取服务;

其中,所述流控配置信息包括通过所述访问密钥访问应用服务器的至少两个标签和每一所述标签对应的至少两个时间粒度的流量控制阈值;所述至少两个标签是基于至少两个流控目标通过键值对的方式定义的,所述标签的键代表所述流控目标,所述标签的值代表所述流控目标对应的对象的标识符;所述标签可执行流控配置操作;所述标签对应的至少两个时间粒度的流量控制阈值是通过所述标签对应的多时间粒度流控配置界面进行配置的;所述多时间粒度流控配置界面是响应于所述应用程序管理系统的多流控目标配置界面中标签对应的流控配置选项的点击操作被显示的;

基于所述流量控制阈值,按照预设的流控策略控制所述访问请求。

2.如权利要求1所述的方法,其特征在于,所述流控配置信息包括通过所述访问密钥访问应用服务器的至少两个标签,以及每一所述标签在至少两个时间粒度下的流量控制阈值;其中,每一所述标签为基于每一所述流控目标通过键值对的方式定义的;

其中,所述时间粒度包括以下至少两种:秒、分钟、小时、月、年。

3.如权利要求1所述的方法,其特征在于,所述在所述访问请求鉴权通过的情况下,获取应用程序管理系统配置的流控配置信息,包括:在所述访问请求鉴权通过的情况下,查询网关缓存中是否存在所述应用程序管理系统配置的流控配置信息;

在所述网关缓存中存在所述流控配置信息的情况下,从所述网关缓存中加载所述流控配置信息。

4.如权利要求1所述的方法,其特征在于,所述在所述访问请求鉴权通过的情况下,获取应用程序管理系统配置的流控配置信息,还包括:在所述网关缓存中不存在所述流控配置信息的情况下,向所述应用程序管理系统发送查询请求;其中,所述查询请求用于查询所述访问请求对应的流控配置信息;

响应于接收到所述应用程序管理系统返回的所述流控配置信息,将所述流控配置信息存储到所述网关缓存中。

5.如权利要求4所述的方法,其特征在于,所述方法还包括:

响应于未接收到所述应用程序管理系统返回的所述流控配置信息,将所述访问请求转发到所述应用服务器。

6.如权利要求1至5任一项所述的方法,其特征在于,所述基于所述流量控制阈值,按照预设的流控策略控制所述访问请求,包括:确定每一所述流控目标在每一所述时间粒度下的累计访问次数;

基于每一所述流控目标在同一所述时间粒度下的所述累计访问次数和所述流量控制阈值,控制所述访问请求。

7.如权利要求6所述的方法,其特征在于,所述基于每一所述流控目标在同一所述时间粒度下的所述累计访问次数和所述流量控制阈值,控制所述访问请求,包括:在任一所述流控目标在同一时间粒度下的所述累计访问次数超过所述流量控制阈值的情况下,拒绝所述访问请求;或者,在所有所述流控目标在同一时间粒度下的所述累计访问次数均未超过所述流量控制阈值的情况下,将所述访问请求转发到所述应用服务器。

8.如权利要求7所述的方法,其特征在于,所述确定每一所述流控目标在每一所述时间粒度下的累计访问次数,包括:通过所述网关缓存中设置的至少两个时间粒度的计数器,确定每一所述流控目标在每一所述时间粒度下的累计访问次数;其中,每一所述计数器的值在接收到相应所述流控目标对应的访问请求之后均加1。

9.如权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:

响应于接收到所述应用服务器对所述访问请求的响应结果,将所述响应结果发送给所述客户端。

10.一种流量控制方法,其特征在于,应用于应用程序管理系统,所述方法包括:

基于至少两个流控目标,通过键值对的方式定义访问密钥访问应用服务器的至少两个标签;所述标签的键代表流控目标,所述标签的值代表所述流控目标对应的对象的标识符;

所述标签可执行流控配置操作;

响应于所述应用程序管理系统的多流控目标配置界面中标签对应的流控配置选项的点击操作,显示所述标签对应的多时间粒度流控配置界面;

通过所述多时间粒度流控配置界面配置所述标签对应的至少两个时间粒度的流量控制阈值;

将所述至少两个标签和每一所述标签对应的至少两个时间粒度的流量控制阈值,作为配置的用于所述访问密钥访问应用服务器的流控配置信息;

接收API网关发送的查询请求;其中,所述查询请求用于查询客户端发送的访问请求对应的流控配置信息;所述查询请求是所述API网关在所述访问请求通过鉴权且网关缓存中不存在所述流控配置信息的情况下发送的;所述访问请求至少携带所述应用程序管理系统为所述客户端签发的访问密钥;所述流控配置信息包括所述应用程序管理系统针对所述访问密钥访问应用服务器的至少两个通过键值对的方式定义的流控目标,所设置的每一所述流控目标在不同时间粒度下的流量控制阈值;所述流控目标包括以下至少两个:所述访问密钥、所述访问密钥对应的应用和所述应用所属的租户;所述租户包括多个应用;每一所述应用包括多个访问密钥;所述应用用于发送访问请求并获取服务;

基于所述查询请求,向所述API网关返回所述流控配置信息。

11.如权利要求10所述的方法,其特征在于,所述方法还包括:

为所述客户端签发所述访问密钥并授权;

基于所述访问密钥对应的至少两个流控目标,为所述访问密钥配置用于访问应用服务器的所述流控配置信息。

12.如权利要求10或11所述的方法,其特征在于,所述时间粒度包括以下至少两种:秒、分钟、小时、月、年。

13.一种流量控制装置,其特征在于,应用于API网关,所述装置包括认证鉴权模块、信息获取模块和流量控制模块,其中:所述认证鉴权模块,用于响应于接收到客户端发送的访问请求,对所述访问请求进行认证鉴权;其中,所述访问请求至少携带应用程序管理系统为所述客户端签发的访问密钥;

所述信息获取模块,用于在所述访问请求通过鉴权的情况下,获取所述应用程序管理系统配置的流控配置信息;其中,所述流控配置信息包括针对所述访问密钥访问应用服务器的至少两个通过键值对的方式定义的流控目标,所设置的每一所述流控目标在不同时间粒度下的流量控制阈值;所述流控目标包括以下至少两个:所述访问密钥、所述访问密钥对应的应用和所述应用所属的租户;所述租户包括多个应用;每一所述应用包括多个访问密钥;所述应用用于发送访问请求并获取服务;

其中,所述流控配置信息包括通过所述访问密钥访问应用服务器的至少两个标签和每一所述标签对应的至少两个时间粒度的流量控制阈值;所述至少两个标签是基于至少两个流控目标通过键值对的方式定义的,所述标签的键代表所述流控目标,所述标签的值代表所述流控目标对应的对象的标识符;所述标签可执行流控配置操作;所述标签对应的至少两个时间粒度的流量控制阈值是通过所述标签对应的多时间粒度流控配置界面进行配置的;所述多时间粒度流控配置界面是响应于所述应用程序管理系统的多流控目标配置界面中标签对应的流控配置选项的点击操作被显示的;

所述流量控制模块,用于基于所述流量控制阈值,按照预设的流控策略控制所述访问请求。

14.一种流量控制装置,其特征在于,应用于应用程序管理系统,所述装置包括配置模块、接收模块和第一发送模块,其中:所述配置模块,用于基于至少两个流控目标,通过键值对的方式定义访问密钥访问应用服务器的至少两个标签;所述标签的键代表流控目标,所述标签的值代表所述流控目标对应的对象的标识符;所述标签可执行流控配置操作;响应于所述应用程序管理系统的多流控目标配置界面中标签对应的流控配置选项的点击操作,显示所述标签对应的多时间粒度流控配置界面;通过所述多时间粒度流控配置界面配置所述标签对应的至少两个时间粒度的流量控制阈值;将所述至少两个标签和每一所述标签对应的至少两个时间粒度的流量控制阈值,作为配置的用于所述访问密钥访问应用服务器的流控配置信息;

所述接收模块,用于接收API网关发送的查询请求;其中,所述查询请求用于查询客户端发送的访问请求对应的流控配置信息;所述查询请求是所述API网关在所述访问请求通过鉴权且网关缓存中不存在所述流控配置信息的情况下发送的;所述访问请求至少携带所述应用程序管理系统为所述客户端签发的访问密钥;所述流控配置信息包括所述应用程序管理系统针对所述访问密钥访问应用服务器的至少两个通过键值对的方式定义的流控目标,所设置的每一所述流控目标在不同时间粒度下的流量控制阈值;所述流控目标包括以下至少两个:所述访问密钥、所述访问密钥对应的应用和所述应用所属的租户;所述流控配置信息是由应用程序管理系统配置的;所述租户包括多个应用;每一所述应用包括多个访问密钥;所述应用用于发送访问请求并获取服务;

所述第一发送模块,用于基于所述查询请求,向所述API网关返回所述流控配置信息。

15.一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至9任一项所述方法中的步骤;或者实现权利要求10至12任一项所述方法中的步骤。

16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至9任一项所述方法中的步骤;或者实现权利要求10至12中任一项所述方法中的步骤。