掌桥专利:专业的专利平台
掌桥专利
首页

一种前端接口限流方法及系统

文献发布时间:2024-04-18 19:59:31


一种前端接口限流方法及系统

技术领域

本发明涉及互联网技术领域,特别涉及一种前端接口限流方法及系统。

背景技术

在各类互联网应用系统中,基于HTTP协议实现前端向服务器端发送请求并进行响应,是一种基本的工作机制。HTTP协议采用协议名、主机、接口、路径的格式来标志请求的来源,其中接口往往与客户端发起请求的具体应用程序相关联。

请求库和拦截器是实现HPPT请求和响应机制的一种主要手段,请求库是访问网络资源的第三方库,利用请求库可以针对前端接口构造至少一个请求对象,并由请求对象按照预定的策略自动向作为目标的服务器发起请求,进而获得服务器的响应内容。为了保证请求对象向服务器发起请求的行为能够符合预定的策略,由拦截器对前端接口对应的请求对象所发起的请求进行拦截,执行数据转换之后进行发起,并且对超出策略运行范围的前端接口的请求给予限流。

目前,现有技术中主要的问题包括以下方面:在如何识别出需要限流的前端接口方面,目前现有技术中一般只支持配置相对简单的识别规则,例如在预定时长内发起请求次数高于次数限制,则由拦截器执行限流,以上识别规则并不利于发现前端接口请求流量的一些潜在、动态特征,而目前的服务器端往往会基于一些相对复杂的算法来识别以上特征,进而拒绝响应,从而降低了请求库的请求成功率。

发明内容

本发明提供一种前端接口限流方法和系统。本发明能够实现精准并具有动态性的前端接口限流,利用经过训练的深度学习模型,构建分类识别引擎,对各个前端接口的流量动态特征进行识别分析,形成分类标签,从而识别出要限流的接口。进而,利用前端接口的分类标签,对应动态设置流量阈值、限制时间、请求次数等限流参数;判断前端接口的当前流量参数是否超出所述限流参数,进而进行接口流量限制作业。

本发明公开的前端接口限流方法,其特征在于,包括以下步骤:

步骤1:通过拦截器获得前端接口发起的请求,并且针对所述前端接口发起的请求,按照时间窗口单元统计流量数据,建立所述前端窗口的请求流量序列;

步骤2:构建并训练面向接口流量动态特征的分类识别引擎模块;

步骤3:利用训练完成的所述分类识别引擎模块,对各个前端接口的流量动态特征进行识别分析,形成分类标签,并根据所述分类标签识别出要限流的接口;

步骤4:利用前端接口的分类标签,对应动态设置流量阈值、限制时间、请求次数等限流参数;

步骤5:判断前端接口的当前流量参数是否超出所述限流参数,进而通过所述拦截器进行接口流量限制作业。

优选的是,步骤1中,向目标服务器发起请求的前端接口借助请求库,构造本前端接口对应的请求对象;由请求对象按照预定的策略,自动向作为目标的服务器发起请求。

优选的是,步骤1中,通过拦截器获得前端接口对应的请求对象所发起的每次请求,并且,通过拦截器以时间窗口单元为基本的统计单位,针对所述前端接口发起的请求,统计每个时间窗口单元上发生的请求所带来的流量数据,以时间窗口单元的时序排列,建立所述前端窗口的请求流量序列。

优选的是,步骤2中,构造的所述分类识别引擎模块包括一个无监督预训练网络构成的特征提取器,用于进行接口流量动态特征的提取和分析;以及一个基于迁移学习的特征分类器,实现针对接口流量动态特征的分类。

进一步优选的是,步骤2中,构造的所述特征提取器包括一个查询编码器和一个动量编码器,二者均为神经网络模型;还包括一个存放动量编码器输出的键的字典队列。

优选的是,步骤2中,所述特征提取器首先以无标签的请求流量序列样本集进行训练,通过更新直至损失函数的梯度符合要求,从而优化查询编码器和动量编码器二者的网络最优参数向量;对于训练出来的查询编码器的神经网络参数迁移到特征分类器,作为该特征分类器中特征提取层的初始化参数,在其之后接一个全连接的多层感知器网络,实现分类输出。

本发明还提供了一种前端接口限流系统,其特征在于,包括:

请求流量统计模块,用于通过拦截器获得前端接口发起的请求,并且针对所述前端接口发起的请求,按照时间窗口单元统计流量数据,建立所述前端窗口的请求流量序列;

分类识别引擎模块,用于对各个前端接口的流量动态特征进行识别分析,形成分类标签,并根据所述分类标签识别出要限流的接口;

限流设置模块,用于利用前端接口的分类标签,对应动态设置流量阈值、限制时间、请求次数等限流参数;

限流执行模块,用于判断前端接口的当前流量参数是否超出所述限流参数,进而通过所述拦截器进行接口流量限制作业。

优选的是,所述分类识别引擎模块包括一个无监督预训练网络构成的特征提取器,用于进行接口流量动态特征的提取和分析;以及一个基于迁移学习的特征分类器,实现针对接口流量动态特征的分类。

优选的是,所述特征提取器包括一个查询编码器和一个动量编码器,二者均为神经网络模型;特征提取器还包括一个作为存放动量编码器输出的键的字典队列。

优选的是,所述特征分类器包括特征提取层和多层感知器网络,所述特征提取层通过迁移学习从所述特征提取器的查询编码器获得神经网络参数,全连接的所述多层感知器网络实现分类输出。

本发明在能够利用经过训练的深度学习模型,对各个前端接口的流量动态特征进行识别分析,进而动态设定限流参数,实现精准并具有动态性的前端接口限流,提高了请求成功率,能够对服务器通过复杂算法实现对前端接口识别和拒绝响应的情况进行良好的适应。

附图说明

下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的前端接口限流方法流程图;

图2是本发明构造的分类识别引擎模块具体结构图;

图3是本发明提供的前端接口限流系统结构图。

具体实施方式

为使本发明实施的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行更加详细的描述。

需要说明的是:在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本发明一部分实施例,而不是全部的实施例,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供的前端接口限流方法及系统,能够实现精准并具有动态性的前端接口限流,利用经过训练的深度学习模型,构建分类识别引擎,对各个前端接口的流量动态特征进行识别分析,形成分类标签,从而识别出要限流的接口。进而,利用前端接口的分类标签,对应动态设置流量阈值、限制时间、请求次数等限流参数;判断前端接口的当前流量参数是否超出所述限流参数,进而进行接口流量限制作业。

下面参考图1,详细描述本发明公开的前端接口限流方法,包括以下步骤:

步骤1:通过拦截器获得前端接口发起的请求,并且针对所述前端接口发起的请求,按照时间窗口单元统计流量数据,建立所述前端窗口的请求流量序列;

步骤2:构建并训练面向接口流量动态特征的分类识别引擎模块;

步骤3:利用训练完成的所述分类识别引擎模块,对各个前端接口的流量动态特征进行识别分析,形成分类标签,并根据所述分类标签识别出要限流的接口;

步骤4:利用前端接口的分类标签,对应动态设置流量阈值、限制时间、请求次数等限流参数;

步骤5:判断前端接口的当前流量参数是否超出所述限流参数,进而通过所述拦截器进行接口流量限制作业。

具体来说,在步骤1中,需要向目标服务器发起请求的前端接口借助请求库,构造本前端接口对应的请求对象;由请求对象按照预定的策略,自动向作为目标的服务器发起请求;所述策略一般定义了该对应前端接口的请求对象发起请求的时间点、请求消息内容、触发请求的条件等因素中的一个或者多个。相应的,本步骤1中,通过拦截器获得前端接口对应的请求对象所发起的每次请求,并且,拦截器以时间窗口单元(例如每1秒钟可以作为一个时间窗口单元)为基本的统计单位,针对所述前端接口发起的请求,统计每个时间窗口单元上发生的请求所带来的流量数据,该流量数据与本时间窗口单元上前端接口对应请求对象所发起请求的次数、请求消息内容等因素相关;进而,对于每个时间窗口单元上统计的流量数据,以时间窗口单元的时序排列,从而建立所述前端窗口的请求流量序列,将该请求流量序列表示为x。

在步骤2中,基于支持深度学习的神经网络模型,构造面向接口流量动态特征的分类识别引擎模块。

参见图2,该分类识别引擎模块包括一个无监督预训练网络构成的特征提取器,用于进行接口流量动态特征的提取和分析;以及一个基于迁移学习的特征分类器,实现针对接口流量动态特征的分类。

进一步,所述特征提取器包括一个查询编码器和一个动量编码器,二者均为神经网络模型;查询编码器表示为f

特征提取器首先以无标签的请求流量序列样本集进行训练,所述无标签的请求流量序列样本集表示为:

初始化查询编码器f

每轮训练过程中,利用查询特征q

这里

其中,

形状为n×K,/>

这里,

基于该损失函数的梯度更新查询编码器参数θ

其中α是学习率,m是动量参数;通过更新直至损失函数的梯度符合要求,从而优化查询编码器和动量编码器二者的网络最优参数向量

进而,对于训练出来的查询编码器

在步骤3中,利用上述步骤2中构造并最终训练完成的所述分类识别引擎模块,将步骤1中采集的前端窗口的请求流量序列x输入特征分类器的特征提取层

在步骤4中,根据前端接口的分类标签,如果前端接口分类标签为“限流”,则通过所述拦截器,动态设置针对该前端接口的流量阈值、限制时间、请求次数等限流参数。拦截器可以以前文所述的时间窗口单元(例如1秒钟为一个时间窗口单元)为基本单位,针对该前端接口,设置每个时间窗口单元内该前端接口利用请求库的请求对象发起请求的最大流量阈值,如果超过该阈值则限制该前端接口不能再次发起请求。或者,拦截器可以设置该前端接口利用请求库的请求对象发起2次请求所需间隔的时间窗口单元的数量。或者,拦截器可以设置每个时间窗口单元内该前端接口利用请求库的请求对象发起请求的最大次数阈值,如果超过该阈值则限制该前端接口不能再次发起请求。

进而,步骤5中,判断前端接口的当前流量参数是否超出所述限流参数,进而通过所述拦截器进行接口流量限制作业。

进而,本发明提供了一种前端接口限流系统,如图3所示,该系统包括:

请求流量统计模块,用于通过拦截器获得前端接口发起的请求,并且针对所述前端接口发起的请求,按照时间窗口单元统计流量数据,建立所述前端窗口的请求流量序列;

分类识别引擎模块,用于对各个前端接口的流量动态特征进行识别分析,形成分类标签,并根据所述分类标签识别出要限流的接口;

限流设置模块,用于利用前端接口的分类标签,对应动态设置流量阈值、限制时间、请求次数等限流参数;

限流执行模块,用于判断前端接口的当前流量参数是否超出所述限流参数,进而通过所述拦截器进行接口流量限制作业。

其中,所述分类识别引擎模块包括一个无监督预训练网络构成的特征提取器,用于进行接口流量动态特征的提取和分析;以及一个基于迁移学习的特征分类器,实现针对接口流量动态特征的分类。

进而,所述特征提取器包括一个查询编码器和一个动量编码器,二者均为神经网络模型;特征提取器还包括一个作为存放动量编码器输出的键的字典队列。

所述特征分类器包括特征提取层和多层感知器网络,所述特征提取层通过迁移学习从所述特征提取器的查询编码器获得神经网络参数,全连接的所述多层感知器网络实现分类输出。

本发明在能够利用经过训练的深度学习模型,对各个前端接口的流量动态特征进行识别分析,进而动态设定限流参数,实现精准并具有动态性的前端接口限流,提高了请求成功率,能够对服务器通过复杂算法实现对前端接口识别和拒绝响应的情况进行良好的适应。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种用于钢筋笼滚焊机的上料系统
  • 一种钢筋笼吊筋脱离装置、钢筋笼及使用方法
  • 钢筋笼滚焊机自动穿筋系统及钢筋笼滚焊机自动穿筋方法
  • 钢筋笼滚焊机自动穿筋系统及钢筋笼滚焊机自动穿筋方法
技术分类

06120116516418