CN114745329A - 流量控制方法和装置、存储介质及电子装置 - Google Patents
流量控制方法和装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN114745329A CN114745329A CN202210327280.1A CN202210327280A CN114745329A CN 114745329 A CN114745329 A CN 114745329A CN 202210327280 A CN202210327280 A CN 202210327280A CN 114745329 A CN114745329 A CN 114745329A
- Authority
- CN
- China
- Prior art keywords
- target service
- target
- flow control
- service request
- interface
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000011217 control strategy Methods 0.000 claims description 53
- 238000013515 script Methods 0.000 claims description 23
- 230000000977 initiatory effect Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 12
- 230000001960 triggered effect Effects 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种流量控制方法和装置、存储介质及电子装置,其中,上述方法包括:拦截发送至目标业务接口的目标业务请求;在目标缓存中查找到目标业务接口的当前业务请求量的情况下,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件;在满足预设的流量控制条件的情况下,对发送至目标业务接口的目标业务请求进行流量控制。采用上述技术方案,解决了现有技术中访问能量突增的情况下出现的服务器压力过大的问题。
Description
技术领域
本发明涉及通信技术领域,具体而言,涉及一种流量控制方法和装置、存储介质及电子装置。
背景技术
产品业务对外提供的服务,通常部署于多个服务器上,一个业务线可能涉及到多个服务接口,并且部署到多台服务器上。如果用户恶意攻击,或者用户的访问量突增,访问量可能超出系统能够承载的范围。针对这种情况,现有技术中并没有对业务线的服务接口的业务请求进行流量控制,导致了服务器压力过大的问题。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种流量控制方法和装置、存储介质及电子装置,以至少解决访问量突增的情况下出现的服务器压力过大的问题。
根据本发明实施例的一方面,提供一种流量控制方法,包括:拦截发送至目标业务接口的目标业务请求,其中,目标业务请求用于请求访问目标业务线中的目标业务,目标业务接口是目标业务的接口;在目标缓存中查找到目标业务接口的当前业务请求量的情况下,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件;在满足所述预设的流量控制条件的情况下,对发送至目标业务接口的目标业务请求进行流量控制。
可选地,在上述判断目标业务接口的当前业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件之前,上述流量控制方法包括:在目标缓存中查找确定目标业务接口是否配置有对应的流量控制策略信息,其中,流量控制策略信息包括预设的流量控制条件;在目标缓存中未查找到流量控制策略信息的情况下,在目标数据库中查找流量控制策略信息;在目标数据库中查找到流量控制策略信息的情况下,将流量控制策略信息存储在目标缓存中;在目标数据库中未查找到流量控制策略信息的情况下,在目标缓存中将目标业务接口对应的流量控制字段设置为null字符串,其中,null字符串用于表示目标业务接口未配置有对应的流量控制策略信息。
可选地,上述判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件,包括:通过与流量控制策略信息对应的目标脚本,将当前业务请求量更新至目标数量,其中,目标数量是当前业务请求量与目标业务请求的数量之和,流量控制策略信息包括预设的流量控制条件;在目标数量小于或等于流量控制条件中的目标请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件;在目标数量大于流量控制条件中的目标请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求不满足预设的流量控制条件,并通过目标脚本,将当前业务请求量更新至目标数量与目标业务请求的数量之差。
可选地,上述判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件,包括:在目标业务线包括多个业务、且多个业务包括目标业务和执行顺序位于目标业务之前的上一个业务时,根据上一个业务的业务接口的当前业务请求量,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件;或者在目标业务线包括多个业务、且多个业务包括目标业务和执行顺序位于目标业务之前的上一个业务时,根据目标业务请求与上一个业务之间的关系,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件。
可选地,上述根据上一个业务的业务接口的当前业务请求量,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件,包括:在上一个业务的业务接口的当前业务请求量、目标业务接口的当前业务请求量、与目标业务请求的数量之和小于或等于预设的流量控制条件中的目标请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件;或者在上一个业务的业务接口的当前业务请求量小于或等于第一请求量阈值、且目标业务接口的当前业务请求量与目标业务请求的数量之和小于或等于预设的流量控制条件中的第二请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件;在上一个业务的业务接口的当前业务请求量大于第一请求量阈值、且目标业务接口的当前业务请求量与目标业务请求的数量之和小于或等于预设的流量控制条件中的第三请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件,其中,第三请求量阈值小于第二请求量阈值。
可选地,上述根据目标业务请求与上一个业务之间的关系,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件,包括:在目标业务请求是上一个业务结束后所触发的业务请求的情况下,判断目标业务接口的当前业务请求量与目标业务请求的数量之和是否小于或等于预设的流量控制条件中的目标请求量阈值;在目标业务接口的当前业务请求量与目标业务请求的数量之和小于或等于预设的流量控制条件中的目标请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件;或者在目标业务请求包括多个业务请求、且目标业务请求中大于预设数量或大于预设比例的业务请求是上一个业务结束后所触发的业务请求的情况下,判断目标业务接口的当前业务请求量与目标业务请求的数量之和是否小于或等于预设的流量控制条件中的目标请求量阈值;在目标业务接口的当前业务请求量与目标业务请求的数量之和小于或等于预设的流量控制条件中的目标请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件。
可选地,上述对发送至目标业务接口的目标业务请求进行流量控制,包括以下至少之一:取消将目标业务请求发送给目标业务接口;取消将目标业务请求发送给目标业务接口,并记录以下信息中的至少之一:目标业务请求的发起设备的设备信息、目标业务请求的发起设备的IP地址、目标业务请求的路由信息;取消将目标业务请求发送给目标业务接口,并根据以下信息中的至少之一对预设的流量控制条件进行调整:目标业务请求的发起设备的设备信息、目标业务请求的发起设备的IP地址、目标业务请求的路由信息。
根据本发明实施例的另一方面,还提供一种流量控制装置,包括:拦截单元,用于拦截发送至目标业务接口的目标业务请求,其中,目标业务请求用于请求访问目标业务线中的目标业务,目标业务接口是目标业务的接口;判断单元,用于在目标缓存中查找到目标业务接口的当前业务请求量的情况下,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件;控制单元,用于在满足预设的流量控制条件的情况下,对发送至目标业务接口的目标业务请求进行流量控制。
通过本发明实施例,拦截发送至目标业务接口的目标业务请求;在目标缓存中查找到目标业务接口的当前业务请求量的情况下;判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件;并在满足预设的流量控制条件的情况下,对发送至目标业务接口的目标业务请求进行流量控制。也就是说,通过对即将进入目标业务接口的目标业务请求进行拦截,并在目标缓存中查找到目标业务接口的当前业务请求量的情况下,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件,并在满足预设的流量控制条件的情况下,对发送至目标业务接口的目标业务请求进行流量控制。解决了访问量突增的情况下出现的服务器压力过大的问题,避免了访问量过大导致的服务器崩溃,减小了服务器压力。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示例性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的流量控制方法的硬件环境的示意图;
图2是根据本发明实施例的一种可选的流量控制方法的流程图;
图3是根据本发明实施例的一种可选的配置目标业务接口阈值的示意图;
图4根据本发明实施例的一种可选的流量控制方法的整体流程图;
图5是根据本发明实施例的一种可选的流量控制装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例中所提供的方法实施例可以在计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的流量控制方法的云平台的硬件结构框图。如图1所示,云平台可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器(Microprocessor Unit,简称是MPU)或可编程逻辑器件(Programmable logic device,简称是PLD))和用于存储数据的存储器104,在一个示例性实施例中,上述云平台还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述云平台的结构造成限定。例如,云平台还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的流量控制方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至云平台。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括IOT平台的通信供应商提供的无线网络。在一个实施例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种流量控制方法,图2是根据本发明实施例的流量控制方法的流程图,该流程包括如下步骤:
步骤S202,拦截发送至目标业务接口的目标业务请求,其中,所述目标业务请求用于请求访问目标业务线中的目标业务,所述目标业务接口是所述目标业务的接口;
步骤S204,在目标缓存中查找到目标业务接口的当前业务请求量的情况下,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件;
步骤S206,在满足预设的流量控制条件的情况下,对发送至目标业务接口的目标业务请求进行流量控制。
在本实施例中,针对一整条业务线而言,服务器的数量不作限定。通常情况下,大多数服务器是分布式部署的,一个业务线可能涉及到多个接口,并且该多个接口的部署方式不作限定,可以是每个接口同时部署到同一服务器上,也可以是部分接口部署到同一服务器上。
例如,以通过手机网站购买商品为例,假设该业务线包括商品浏览、加入购物车、订单支付三个业务,那么,这三个业务的接口可以同时部署到服务器A上;也可以将产品浏览页面和加入购物车两个业务的接口部署到服务器A上,订单支付页面的业务接口部署到服务器B上。
作为一种可选地示例,假设目标业务请求为订单支付,且该订单支付所对应的业务接口部署在服务器B上的目标业务接口S时,对服务器B进行流量控制的具体实现过程包括:
(1)拦截订单支付的业务请求;
(2)从目标缓存中查找是否存在目标业务接口S的当前业务请求量;
(3)在查找到目标业务接口S的当前业务请求量的情况下,判断目标业务接口S的当前业务请求量与订单支付请求是否满足预设的流量控制条件;
(4)在判断结果为满足预设的流量控制条件的情况下,对发送至目标业务接口S的订单支付请求进行流量控制。
为了更加清晰地理解上述流量控制方法的实现过程,下面结合具体的实施例对上述步骤S202~S206进行进一步解释和说明。
作为一种可选地示例,在上述步骤S204之前,还可能存在如下子步骤:
S203-1,确定目标业务接口是否配置有对应的流量控制策略信息,其中,流量控制策略信息用于表示在满足预设的流量控制条件时,对发送至目标业务接口的业务请求进行流量控制;
需要说明的是,在步骤S204中,根据接口标识查找到的流量控制策略中包括对发送至该业务接口的业务请求进行流量控制的具体条件。例如,对商品浏览的业务接口进行流量控制的条件可以设置为当前实际业务请求量进行加1处理后的数值大于预先设置的请求量阈值;也可以设置为当前实际业务请求量大于或等于预先设置的请求量阈值。可以理解的是,根据不同的需求,可以针对不同的业务接口设置不同的流量控制条件,在本申请实施例中不做具体限定。
S203-2,在确定出目标业务接口配置有对应的流量控制策略信息时,根据目标业务接口的标识,在目标换粗那种查找目标业务几口的当前业务请求量;
例如,在上述通过手机网站购买商品的例子中,会预先对商品浏览、加入购物车、订单支付三个业务的业务接口设置不同的接口标识S1、S2、S3。当商品浏览的业务接口接收到业务请求时,会根据接口标识S1去缓存中查找是否存在与商品浏览业务接口相匹配的流量控制策略。当查找到对应的流量控制策略时,再根据接口标识S1去缓存中查找商品浏览业务接口的当前业务请求量。
进一步地,上述通过判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制流量,对发送至目标业务接口的目标业务请求的处理方式包括以下至少之一:
(1)在目标业务接口的当前业务请求量与目标业务请求不满足流量控制策略中的流量控制条件的情况下,将目标业务请求发送至目标业务接口,并按照目标业务的业务逻辑对目标业务请求进行处理;
(2)在目标业务接口的当前业务请求量与目标业务请求满足流量控制策略信息中的流量控制条件的情况下,对发送至目标业务接口的目标业务请求进行流量控制。
下面结合具体的实施例对上述通过判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制流量,对发送至目标业务接口的目标业务请求的处理方式的具体过程进行解释说明。
假设商品浏览业务接口的流量控制条件为当前业务接口请求量进行加1处理后得到的数值大于预先设定的请求量阈值。其中,加1处理指的是在商品浏览业务接口的实际业务请求量的基础上再加上当前时刻发送至该接口的目标业务请求Q1的请求量(此处假设当前时刻发送至该接口的请求的数量为1)。当假设商品浏览业务接口的请求量阈值为10,当前业务请求量为8时,那么8+1=9,9<10。由此可见,商品浏览业务接口的当前业务请求量与目标业务请求不满足预先设定的流量控制条件,那么就将当前时刻的目标业务请求Q1发送至商品浏览接口,并按照该接口的业务逻辑对目标业务请求Q1进行处理。相反,当假设商品浏览业务接口的请求量阈值为10,当前业务请求量为10时,那么10+1=11,11>10,此时就需要对目标业务请求Q1进行拦截,阻止目标业务请求Q1进入商品浏览的业务接口。
容易理解的是,当商品浏览业务接口的当前业务请求量与目标业务请求Q1满足流量控制条件的情况下,由于目标业务请求Q1已按照正常业务处理流程完成了商品浏览的业务,所以需要对商品浏览业务接口的当前时刻的实际请求量进行减1处理,以保证该接口请求量的实时有效性。
通过本申请提供的上述实施例,根据目标业务接口的标识,从目标缓存中查找对应的流量控制策略信息和当前业务请求量,并依据流量控制策略信息中的流量控制条件判断是否对目标业务请求进行流量控制。通过对服务器接口的访问量进行控制,避免了访问量突增的情况下出现服务器崩溃的情况,解决了服务器压力过大的问题。
在一个可选的实施例中,在上述步骤S204之前,上述流量控制方法还包括:
在目标缓存中查找目标业务接口是否配置有对应的流量控制策略信息,其中,流量控制策略信息包括预设的流量控制条件;
在目标缓存中未查找到流量控制策略信息的情况下,在目标数据库中查找流量控制策略信息;
在目标数据库中查找到流量控制策略信息的情况下,将流量控制策略信息存储在目标缓存中;
在目标数据库中未查找到流量控制策略信息的情况下,在目标缓存中将目标业务接口对应的流量控制字段设置为null字符串,其中,null字符串用于表示目标业务接口未配置有对应的流量控制策略信息。
在上述实施例中,业务接口所对应的流控配置通常保存在缓存服务器中,例如redis缓存服务器。根据业务接口的接口标识获取流控配置策略的具体过程为:先根据目标业务接口的接口标识查找目标缓存中是否存在与该目标业务接口相对应的流量控制策略信息,如果有,则根据查找到的流量控制策略信息判断是否对目标业务接口进行流量控制;如果从目标缓存中没有查找到流量控制策略信息,则对目标数据库进行读操作,在从目标数据库中读取到与目标业务接口对应的流量控制策略信息的情况下,将查找到的流量控制策略信息配置到目标缓存中,以用于判断是否对目标业务接口进行流量控制。
需要说明的是,当从目标数据库中没有查找到与目标接口对应的流量控制策略信息的情况下,需要设置null字符串到目标缓存中,以指示没有配置与目标业务接口相对应的流量控制策略信息。在对目标业务接口进行下一次业务访问时,通过识别到目标缓存中的null字符串,就可以确定该目标业务接口不需要进行流量控制。进一步地,也就不需要对目标数据库重复进行读操作,避免了对目标数据库的持续访问所导致的缓存击穿问题。
通过本申请提供的上述实施例,将流量控制策略信息优先存储在目标缓存中,不仅避免了对目标数据库的持续访问导致的缓存击穿问题,还减小了目标数据库的压力,提高了获取流量控制策略信息的效率,进而提升了对目标业务接口进行流量控制的效率。
在一个可选的实施例中,上述步骤S204中判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件,包括:
通过与流量控制策略信息对应的目标脚本,将当前业务请求量更新至目标数量,其中,目标数量是当前业务请求量与目标业务请求的数量之和,所述流量控制策略信息包括所述预设的流量控制条件;
在目标数量小于或等于流量控制条件中的目标请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件;
在目标数量大于预设的流量控制条件中的目标请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求不满足预设的流量控制条件,并通过目标脚本,将当前业务请求量更新至目标数量与目标业务请求的数量之差。
在本实施例中,在依据流量控制策略信息中预设的流量控制条件去判断是否对目标业务接口进行流量控制时,需要先获取目标业务接口的当前业务请求量P1与目标业务请求的数量P2求和之后的实际请求量P。而在本实施例中,执行该求和处理的方式是采用目标脚本对当前业务请求量M1与目标业务请求的数量P2中的数值P1和目标脚P2进行数字操作P1+P2=P。然后利用目标脚本比较实际请求量M与该目标业务接口的目标请求量阈值Pmax。
例如,假设目标业务接口的当前业务请求量P1为80,目标业务请求的数量P2为10,目标请求量阈值Pmax为100,那么利用目标脚本计算目标业务接口的当前实时访问量P=80+10=90。然后利用目标脚本比较P与Pmax之间的大小,得到90<100,也即当前时刻目标业务接口的实时访问量P小于目标请求量阈值Pmax,即可确定目标业务接口满足流量控制条件,对目标业务请求进行流量控制。相反,假设P1为100,P2为10,Pmax为100,则得到P=100+10=110,110>100,确定目标业务接口不满足预设的流量控制条件。
进一步地,在判断结果为满足预设的流量控制条件时,目标业务请求中的10个访问将会有序地被发送至目标业务接口,并按照目标业务的业务逻辑对每一个业务请求进行处理。当判断结果为不满足预设的流量控制条件时,由于目标业务请求没有进入目标业务接口,所以需要通过目标脚本将当前业务请求量更新操作,具体地,利用实时访问量P减去目标业务请求中的数量P2,得到更新后的当前业务请求量P1,以保证当前业务请求量的有效性。
需要说明的是,在本实施例中,目标脚本可以包括但不限于lua脚本,lua由标准C语言编写而成,代码简洁,几乎在所有操作系统和平台上都可以编译和运行。并且一个完整的lua解释器不超过200k,在目前所有脚本引擎中,lua的速度是最快的,所以是嵌入式脚本的最佳选择。
通过本申请提供的上述实施例,利用目标脚本对目标业务接口的当前业务请求量与目标业务请求的数量进行数值的计算操作,判断其是否满足预设的流量控制条件,有效防止了访问量突增的情况下发生数据错乱,提高了流量控制的可靠性。
在一个可选的实施例中,上述判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件,还包括:
在目标业务线包括多个业务、且多个业务包括目标业务和执行顺序位于目标业务之前的上一个业务时,根据上一个业务的业务接口的当前业务请求量,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件;或者
在目标业务线包括多个业务、且多个业务包括目标业务和执行顺序位于目标业务之前的上一个业务时,根据目标业务请求与上一个业务之间的关系,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件。
在上述各本实施例中,描述了依据目标业务接口的当前业务请求量与目标业务请求的数量与判断是否满足预设的流量控制条件,而在实际运用过程中,还可以根据需要设置其他的流量控制判断方式。例如:在一个目标业务线(手机网站上购买商品)中共包括商品浏览业务B1、加入购物车业务B2、订单支付业务B3三个业务,将加入购物车业务B2所对应的业务接口确定为目标业务。那么可以通过比较商品浏览业务B1的业务接口的当前业务请求量与目标业务接口的目标请求量阈值,来确定是否需要对目标业务接口进行流量控制。
可选地,除了上述判定方式之外,还可以根据目标业务请求与上一个业务(商品浏览业务B1)之间的关系来判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件。
通过本申请提供的上述实施例,依据目标业务之前的上一个业务或者依据目标业务请求与上一个业务之间的关系,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件,使得目标业务接口的流量控制的判断条件更加多样化,使得该判定方法可以适用于不同的应用场景。另外,在本实施例中,还考虑目标业务与上一个业务之间关联性,使得目标业务接口的流量控制条件的判定逻辑更加严谨,提高了流量控制的准确性。
在一个可选的实施例中,上述根据上一个业务的业务接口的当前业务请求量,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件,还包括:
在上一个业务的业务接口的当前业务请求量、目标业务接口的当前业务请求量、与目标业务请求的数量之和小于或等于流量控制条件中的目标请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件;或者
在上一个业务的业务接口的当前业务请求量小于或等于第一请求量阈值、且目标业务接口的当前业务请求量与目标业务请求的数量之和小于或等于预设的流量控制条件中的第二请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件;在上一个业务的业务接口的当前业务请求量大于第一请求量阈值、且目标业务接口的当前业务请求量与目标业务请求的数量之和小于或等于预设的流量控制条件中的第三请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件,其中,第三请求量阈值小于第二请求量阈值。
在本实施例中,仍以上述在手机网站购买商品为例进行说明,假设目标业务接口是加入购物车业务B2所对应的业务接口。那么可以通过lua脚本计算商品浏览业务B1的业务接口的当前业务请求量P1、加入购物车业务B2所对应的业务接口的当前业务请求量P3、以及目标业务请求的数量P2的数量之和Y1,当计算出的数量之和Y1小于或等于目标请求量阈值Pmax时,确定目标业务接口(加入购物车B2所对应的业务接口)的当前业务请求量与目标业务请求量满足预设的流量控制条件。
容易理解的是,当计算出的数量之和Y1大于目标请求量阈值Pmax时,则可以确定目标业务接口(加入购物车B2所对应的业务接口)的当前业务请求量与目标业务请求量不满足预设的流量控制条件。
可选地,除了上述判定过程以外,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件的方式还包括:假设目标业务接口是加入购物车业务B2所对应的业务接口,那么可以通过lua脚本分别计算上一个业务(商品浏览业务B1)的业务接口的当前业务请求量P4与第一请求量阈值Pmax1之间的大小关系、目标业务接口(加入购物车业务B2所对应的业务接口)的当前业务请求量P3与目标业务请求的数量P2的数量之和Y1与第二请求量阈值Pmax2之间的大小关系。根据计算结果,判定结果如下:
1)当P4≤Pmax1,且Y1≤Pmax2时,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件;
2)当P4>Pmax1,且Y1>Pmax2时,确定目标业务接口的当前业务请求量与目标业务请求不满足预设的流量控制条件;
3)当P4>Pmax1,且Y1≤Pmax3时,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件;其中,Pmax3<Pmax2。
进一步地,需要说明的是,在本实施例中,涉及到目标业务接口的第一请求量阈值、第二请求量阈值、第三请求量阈值以及目标请求量阈值,那么针对目标业务接口的阈值的配置过程,说明如下:
具体地,如图3所示,假设目标数据库和redis中保存的当前阈值为100,当根据需要将阈值100修改为90时,根据收到的修改阈值配置请求指令,将redis缓存中存储的当前阈值100清空,并将redis缓存中的阈值字段设置为null字符串;其次,在目标数据库中进行修改操作,即将阈值100修改为90;当根据目标业务接口的接口标识去redis缓存中查找阈值时,将目标数据库中修改后的阈值90同步至redis缓存中。也就是说,对阈值的修改操作是在目标数据库中完成的,当根据目标业务请求需要从redis缓存中查找阈值时,才会将修改后的阈值同步至redis缓存中,以确保从redis缓存中获取到的阈值为修改后的最新阈值,保证了数据的有效性。
通过本申请提供的上述实施例,依据目标业务之前的上一个业务的业务接口的当前业务请求量、目标业务接口的当前业务请求量与目标业务请求的数量之和,按照预设的比较逻辑,分别比较与目标请求阈值、第一请求量阈值以及第三请求量阈值之间的大小关系,根据逻辑判定的结果判断是否满足流量控制条件,使得目标业务接口的流量控制条件的判定过程逻辑性更强,提高了对目标业务接口的流量控制的准确性。
在一个可选的实施例中,上述根据目标业务请求与上一个业务之间的关系,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件,包括:
在目标业务请求是上一个业务结束后所触发的业务请求的情况下,判断目标业务接口的当前业务请求量与目标业务请求的数量之和是否小于或等于预设的流量控制条件中的目标请求量阈值;在目标业务接口的当前业务请求量与目标业务请求的数量之和小于或等于预设的流量控制条件中的目标请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件;或者
在目标业务请求包括多个业务请求、且目标业务请求中大于预设数量或大于预设比例的业务请求是上一个业务结束后所触发的业务请求的情况下,判断目标业务接口的当前业务请求量与目标业务请求的数量之和是否小于或等于预设的流量控制条件中的目标请求量阈值;在目标业务接口的当前业务请求量与目标业务请求的数量之和小于或等于预设的流量控制条件中的目标请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件。
在本实施例中,仍以上述在手机网站购买商品为例进行说明,假设目标业务接口是加入购物车业务B2所对应的业务接口,当目标业务接口收到的业务请求中包括一个业务请求时,且该业务请求是在上一个业务(商品浏览业务B1)结束后所触发的,则可以直接依据lua脚本判断加入购物车业务B2所对应的业务接口的当前业务请求量P3与目标业务请求的数量P2的数量之和Y1与目标请求量阈值Pmax之间的大小关系来确定是否满足预设的流量控制条件。具体的,当Y1≤Pmax时,确定满足预设的流量控制条件;当Y1>Pmax时,则不满足预设的流量控制条件。
可选地,当目标业务请求中包括多个业务请求,如10个业务请求Q2、Q3、Q4…Q11,在满足预先设定10个业务请求中的5个请求是在上一个业务结束后所触发的情况下,如果Y1≤Pmax,则确定满足预设的流量控制条件。相反,在满足预先设定10个业务请求中的5个请求是在上一个业务结束后所触发的情况下,如果Y1>Pmax,则不满足预设的流量控制条件。
可以理解的是,预先设定的条件还可以包括但不限于多个业务请求中大于指定比列的业务请求是上一个业务结束后所触发的业务请求,基于该前提条件,进一步判定Y1与Pmax之间的大小关系,并依据比较结果判断是否满足预设的流量控制条件。
通过本申请提供的上述实施例,分别针对目标业务请求中的业务请求数量为一个或多个的情况,结合目标业务接口的当前业务请求量设置了不同的判定方法,提高了流量控制方法的灵活性和实用性。
在一个可选的实施例中,上述对发送至目标业务接口的目标业务请求进行流量控制,包括以下之一:
取消将目标业务请求发送给目标业务接口;
取消将目标业务请求发送给目标业务接口,并记录以下信息中的至少之一:目标业务请求的发起设备的设备信息、目标业务请求的发起设备的IP地址、目标业务请求的路由信息;
取消将目标业务请求发送给目标业务接口,并根据以下信息中的至少之一对预设的流量控制条件进行调整:目标业务请求的发起设备的设备信息、目标业务请求的发起设备的IP地址、目标业务请求的路由信息。
通过上述各实施例的分析可知,在目标业务接口的当前业务请求量与目标业务请求满足流量控制策略信息中预设的流量控制条件的情况下,对发送至目标业务接口的目标业务请求进行流量控制。对于流量控制具体操作可以包括但不限于对发送至目标业务接口的目标业务请求拦截;查询并记录目标业务请求的发起设备的设备信息、设备IP信息以及路由信息等。
此外,根据记录到的上述目标业务请求的发起设备的相关信息,还可以对流量控制条件进行调整,例如,对流量控制条件中的目标请求阈值进行调整、对判段逻辑进行调整等。
通过本申请提供的上述实施例,在对目标业务接口的目标业务请求进行流量控制的过程中,可以查询并记录到目标业务请求发起设备的相关信息,并用记录到的相关信息实时调整流控条件中的参数和判定逻辑。在实现对目标业务接口进行流量控制的同时,还可以对流量控制条件进行实时调整,确保了流量控制条件的有效性,解决了访问量突增的情况下出现的服务器压力过大的问题。
为了更好地理解上述各实施方案,本申请还提供了一种流量控制方法的整体流程图,具体地,如图4所示:
步骤S402,当业务请求发出时,没有直接进入业务接口,而是进入切面;
步骤S404,获取请求信息,并根据根据请求信息中的目标业务接口的接口标识查询接口流控配置;
步骤S406,判断是否配有流控规则,其中,流控配置规则直接从缓存中获取,若是缓存没有的话,去读一遍数据库,倘若数据库有的话,将数据库配置放到redis缓存中,数据库没有的话再缓存中放入null字符串,防止下次请求持续访问数据库导致缓存击穿;倘如数据库和缓存都没有查询到流控配置的话直接放行进入业务接口,如步骤S406-1-S406-3;
步骤S408-S412,在获取到配置的接口流量阈值的情况下,再去redis查询到当前接口的实时访问流量数,倘如没有的话初始化为0;然后利用lua脚本将接口访问量增加1,必须保障此次操作原子性;
步骤S414,比较接口访问量进行加1之后的结果与流量阈值;
步骤S416,在增加之后的访问量小于或等于配置中的流量阈值的情况下,则该访问进入业务接口,按照目标业务接口的业务逻辑对该业务请求进行处理;
步骤S418,待业务执行完毕,再回到切面中,对实时访问量用lua脚本进行原子减1;
步骤S420,在增加之后的访问量大于配置中的流量阈值的情况下,则抛出流控自定义异常,并对接口当前请求量进行减1。
通过本申请提供的上述实施例,根据目标业务接口的标识,从目标缓存中查找对应的流量控制策略信息和当前业务请求量,并依据流量控制策略信息中预设的流量控制条件判断是否对目标业务请求进行流量控制。通过对服务器接口的访问量进行控制,避免了访问量突增的情况下出现服务器崩溃的情况,解决了服务器压力过大的问题。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
在本实施例中还提供了一种流量控制装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的设备较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例的流量控制装置的结构框图,该装置包括:
拦截单元502,用于拦截发送至目标业务接口的目标业务请求,其中,目标业务请求用于请求访问目标业务线中的目标业务,目标业务接口是目标业务的接口;
判断单元504,用于在目标缓存中查找到目标业务接口的当前业务请求量的情况下,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件;
控制单元506,用于在满足预设的流量控制条件的情况下,对发送至目标业务接口的目标业务请求进行流量控制。
可选地,上述流量控制装置还包括:
第一查找模块,用于在目标缓存中查找目标业务接口是否配置有对应的流量控制策略信息,其中,流量控制策略信息包括预设的流量控制条件
第二查找模块,用于在目标缓存中未查找到流量控制策略信息的情况下,在目标数据库中查找流量控制策略信息,;
存储模块,用于目标数据库中查找到流量控制策略信息的情况下,将流量控制策略信息存储在目标缓存中;
第一处理模块,用于在目标数据库中未查找到流量控制策略信息的情况下,在目标缓存中将目标业务接口对应的流量控制字段设置为null字符串,其中,null字符串用于表示目标业务接口未配置有对应的流量控制策略信息。
可选地,上述判断单元504,包括:
更新模块,用于通过与流量控制策略信息对应的目标脚本,将当前业务请求量更新至目标数量,其中,目标数量是当前业务请求量与目标业务请求的数量之和,流量控制策略信息包括预设的流量控制条件;
第一确定模块,用于在目标数量小于或等于预设的流量控制条件中的目标请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件;
第二确定模块,用于在目标数量大于预设的流量控制条件中的目标请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求不满足预设的流量控制条件,并通过目标脚本,将当前业务请求量更新至目标数量与目标业务请求的数量之差。
可选地,上述判断单元504,还包括:
第二处理模块,用于在目标业务线包括多个业务、且多个业务包括目标业务和执行顺序位于目标业务之前的上一个业务时,根据上一个业务的业务接口的当前业务请求量,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件;或者
在目标业务线包括多个业务、且多个业务包括目标业务和执行顺序位于目标业务之前的上一个业务时,根据目标业务请求与上一个业务之间的关系,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件。
可选地,上述第二处理模块还包括:
第一处理子模块,用于在上一个业务的业务接口的当前业务请求量、目标业务接口的当前业务请求量、与目标业务请求的数量之和小于或等于预设的流量控制条件中的目标请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件;或者
在上一个业务的业务接口的当前业务请求量小于或等于第一请求量阈值、且目标业务接口的当前业务请求量与目标业务请求的数量之和小于或等于预设的流量控制条件中的第二请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件;在上一个业务的业务接口的当前业务请求量大于第一请求量阈值、且目标业务接口的当前业务请求量与目标业务请求的数量之和小于或等于预设的流量控制条件中的第三请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件,其中,第三请求量阈值小于第二请求量阈值。
可选地,上述第二处理模块还包括:
第二处理子模块,用于在目标业务请求是上一个业务结束后所触发的业务请求的情况下,判断目标业务接口的当前业务请求量与目标业务请求的数量之和是否小于或等于预设的流量控制条件中的目标请求量阈值;在目标业务接口的当前业务请求量与目标业务请求的数量之和小于或等于预设的流量控制条件中的目标请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件;或者
在目标业务请求包括多个业务请求、且目标业务请求中大于预设数量或大于预设比例的业务请求是上一个业务结束后所触发的业务请求的情况下,判断目标业务接口的当前业务请求量与目标业务请求的数量之和是否小于或等于预设的流量控制条件中的目标请求量阈值;在目标业务接口的当前业务请求量与目标业务请求的数量之和小于或等于预设的流量控制条件中的目标请求量阈值的情况下,确定目标业务接口的当前业务请求量与目标业务请求满足预设的流量控制条件。
可选地,上述对发送至目标业务接口的目标业务请求进行流量控制,包括以下之一:
第三处理模块,用于取消将目标业务请求发送给目标业务接口;
第四处理模块,用于取消将目标业务请求发送给目标业务接口,并记录以下信息中的至少之一:目标业务请求的发起设备的设备信息、目标业务请求的发起设备的IP地址、目标业务请求的路由信息;
第五处理模块,用于取消将目标业务请求发送给目标业务接口,并根据以下信息中的至少之一对预设的流量控制条件进行调整:目标业务请求的发起设备的设备信息、目标业务请求的发起设备的IP地址、目标业务请求的路由信息。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,拦截发送至目标业务接口的目标业务请求,其中,所述目标业务请求用于请求访问目标业务线中的目标业务,所述目标业务接口是所述目标业务的接口;
S2,在目标缓存中查找到目标业务接口的当前业务请求量的情况下,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件;
S3,在满足预设的流量控制条件的情况下,对发送至目标业务接口的目标业务请求进行流量控制。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,拦截发送至目标业务接口的目标业务请求,其中,所述目标业务请求用于请求访问目标业务线中的目标业务,所述目标业务接口是所述目标业务的接口;
S2,在目标缓存中查找到目标业务接口的当前业务请求量的情况下,判断目标业务接口的当前业务请求量与目标业务请求是否满足预设的流量控制条件;
S3,在满足预设的流量控制条件的情况下,对发送至目标业务接口的目标业务请求进行流量控制。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种流量控制方法,其特征在于,包括:
拦截发送至目标业务接口的目标业务请求,其中,所述目标业务请求用于请求访问目标业务线中的目标业务,所述目标业务接口是所述目标业务的接口;在目标缓存中查找到所述目标业务接口的当前业务请求量的情况下,判断所述目标业务接口的当前业务请求量与所述目标业务请求是否满足预设的流量控制条件;
在满足所述预设的流量控制条件的情况下,对发送至所述目标业务接口的所述目标业务请求进行流量控制。
2.根据权利要求1所述的流量控制方法,其特征在于,在判断所述目标业务接口的当前业务请求量与所述目标业务请求是否满足预设的流量控制条件之前,所述流量控制方法还包括:
在所述目标缓存中查找所述目标业务接口是否配置有对应的流量控制策略信息,其中,所述流量控制策略信息包括所述预设的流量控制条件;
在所述目标缓存中未查找到所述流量控制策略信息的情况下,在目标数据库中查找所述流量控制策略信息;
在所述目标数据库中查找到所述流量控制策略信息的情况下,将所述流量控制策略信息存储在所述目标缓存中;
在所述目标数据库中未查找到所述流量控制策略信息的情况下,在所述目标缓存中将所述目标业务接口对应的流量控制字段设置为null字符串,其中,所述null字符串用于表示所述目标业务接口未配置有对应的流量控制策略信息。
3.根据权利要求1所述的流量控制方法,其特征在于,所述判断所述目标业务接口的所述当前业务请求量与所述目标业务请求是否满足所述预设的流量控制条件,包括:
通过与流量控制策略信息对应的目标脚本,将所述当前业务请求量更新至目标数量,其中,所述目标数量是所述当前业务请求量与所述目标业务请求的数量之和,所述流量控制策略信息包括所述预设的流量控制条件;
在所述目标数量小于或等于所述预设的流量控制条件中的目标请求量阈值的情况下,确定所述目标业务接口的所述当前业务请求量与所述目标业务请求满足所述预设的流量控制条件;
在所述目标数量大于所述预设的流量控制条件中的所述目标请求量阈值的情况下,确定所述目标业务接口的所述当前业务请求量与所述目标业务请求不满足所述预设的流量控制条件,并通过所述目标脚本,将所述当前业务请求量更新至所述目标数量与所述目标业务请求的数量之差。
4.根据权利要求1所述的流量控制方法,其特征在于,所述判断所述目标业务接口的所述当前业务请求量与所述目标业务请求是否满足所述预设的流量控制条件,包括:
在所述目标业务线包括多个业务、且所述多个业务包括所述目标业务和执行顺序位于所述目标业务之前的上一个业务时,根据上一个业务的业务接口的当前业务请求量,判断所述目标业务接口的所述当前业务请求量与所述目标业务请求是否满足所述预设的流量控制条件;或者
在所述目标业务线包括多个业务、且所述多个业务包括所述目标业务和执行顺序位于所述目标业务之前的上一个业务时,根据所述目标业务请求与所述上一个业务之间的关系,判断所述目标业务接口的所述当前业务请求量与所述目标业务请求是否满足所述预设的流量控制条件。
5.根据权利要求4所述的流量控制方法,其特征在于,所述根据上一个业务的业务接口的当前业务请求量,判断所述目标业务接口的所述当前业务请求量与所述目标业务请求是否满足所述预设的流量控制条件,包括:
在所述上一个业务的业务接口的当前业务请求量、所述目标业务接口的所述当前业务请求量、与所述目标业务请求的数量之和小于或等于所述预设的流量控制条件中的目标请求量阈值的情况下,确定所述目标业务接口的所述当前业务请求量与所述目标业务请求满足所述预设的流量控制条件;或者
在所述上一个业务的业务接口的当前业务请求量小于或等于第一请求量阈值、且所述目标业务接口的所述当前业务请求量与所述目标业务请求的数量之和小于或等于所述预设的流量控制条件中的第二请求量阈值的情况下,确定所述目标业务接口的所述当前业务请求量与所述目标业务请求满足所述预设的流量控制条件;在所述上一个业务的业务接口的当前业务请求量大于所述第一请求量阈值、且所述目标业务接口的所述当前业务请求量与所述目标业务请求的数量之和小于或等于所述预设的流量控制条件中的第三请求量阈值的情况下,确定所述目标业务接口的所述当前业务请求量与所述目标业务请求满足所述预设的流量控制条件,其中,所述第三请求量阈值小于所述第二请求量阈值。
6.根据权利要求4所述的流量控制方法,其特征在于,所述根据所述目标业务请求与所述上一个业务之间的关系,判断所述目标业务接口的所述当前业务请求量与所述目标业务请求是否满足所述预设的流量控制条件,包括:
在所述目标业务请求是所述上一个业务结束后所触发的业务请求的情况下,判断所述目标业务接口的所述当前业务请求量与所述目标业务请求的数量之和是否小于或等于所述预设的流量控制条件中的目标请求量阈值;在所述目标业务接口的所述当前业务请求量与所述目标业务请求的数量之和小于或等于所述预设的流量控制条件中的所述目标请求量阈值的情况下,确定所述目标业务接口的所述当前业务请求量与所述目标业务请求满足所述预设的流量控制条件;或者
在所述目标业务请求包括多个业务请求、且所述目标业务请求中大于预设数量或大于预设比例的业务请求是所述上一个业务结束后所触发的业务请求的情况下,判断所述目标业务接口的所述当前业务请求量与所述目标业务请求的数量之和是否小于或等于所述预设的流量控制条件中的目标请求量阈值;在所述目标业务接口的所述当前业务请求量与所述目标业务请求的数量之和小于或等于所述预设的流量控制条件中的所述目标请求量阈值的情况下,确定所述目标业务接口的所述当前业务请求量与所述目标业务请求满足所述预设的流量控制条件。
7.根据权利要求1至6中任一项所述的流量控制方法,其特征在于,所述对发送至所述目标业务接口的所述目标业务请求进行流量控制,包括以下之一:
取消将所述目标业务请求发送给所述目标业务接口;
取消将所述目标业务请求发送给所述目标业务接口,并记录以下信息中的至少之一:所述目标业务请求的发起设备的设备信息、所述目标业务请求的发起设备的IP地址、所述目标业务请求的路由信息;取消将所述目标业务请求发送给所述目标业务接口,并根据以下信息中的至少之一对所述预设的流量控制条件进行调整:所述目标业务请求的发起设备的设备信息、所述目标业务请求的发起设备的IP地址、所述目标业务请求的路由信息。
8.一种流量控制装置,其特征在于,包括:
拦截单元,用于拦截发送至目标业务接口的目标业务请求,其中,所述目标业务请求用于请求访问目标业务线中的目标业务,所述目标业务接口是所述目标业务的接口;
判断单元,用于在所述目标缓存中查找到所述目标业务接口的当前业务请求量的情况下,判断所述目标业务接口的所述当前业务请求量与所述目标业务请求是否满足预设的流量控制条件;
控制单元,用于在满足所述预设的流量控制条件的情况下,对发送至所述目标业务接口的所述目标业务请求进行流量控制。
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行所述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210327280.1A CN114745329B (zh) | 2022-03-30 | 2022-03-30 | 流量控制方法和装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210327280.1A CN114745329B (zh) | 2022-03-30 | 2022-03-30 | 流量控制方法和装置、存储介质及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114745329A true CN114745329A (zh) | 2022-07-12 |
CN114745329B CN114745329B (zh) | 2024-03-22 |
Family
ID=82279105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210327280.1A Active CN114745329B (zh) | 2022-03-30 | 2022-03-30 | 流量控制方法和装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114745329B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115665074A (zh) * | 2022-10-08 | 2023-01-31 | 广州市玄武无线科技股份有限公司 | 消息限流发送方法、装置、设备及存储介质 |
Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060012134A (ko) * | 2004-08-02 | 2006-02-07 | 주식회사 케이티 | 기업용 실시간 서비스 관리 시스템 및 그 방법 |
CN103546388A (zh) * | 2012-07-10 | 2014-01-29 | 阿里巴巴集团控股有限公司 | 一种流量控制方法及装置 |
US20170272371A1 (en) * | 2016-03-21 | 2017-09-21 | Alibaba Group Holding Limited | Flow control in connection with an access request |
CN107613528A (zh) * | 2016-07-11 | 2018-01-19 | 华为技术有限公司 | 一种业务流量的控制方法及系统 |
CN107770088A (zh) * | 2017-09-06 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 一种流量控制方法及装置 |
CN108073465A (zh) * | 2017-12-29 | 2018-05-25 | 中国平安人寿保险股份有限公司 | 动态限流方法、Nginx服务器、存储介质及装置 |
CN108400944A (zh) * | 2018-05-31 | 2018-08-14 | 深圳市零度智控科技有限公司 | 网络流量控制方法、装置及计算机可读存储介质 |
CN108573013A (zh) * | 2017-12-08 | 2018-09-25 | 北京金山云网络技术有限公司 | 请求处理方法、装置、电子设备及计算机可读存储介质 |
CN109087055A (zh) * | 2018-06-06 | 2018-12-25 | 北京达佳互联信息技术有限公司 | 业务请求的控制方法和装置 |
CN110213173A (zh) * | 2019-06-06 | 2019-09-06 | 北京百度网讯科技有限公司 | 流量控制方法及装置、系统、服务器、计算机可读介质 |
US20190320349A1 (en) * | 2016-11-04 | 2019-10-17 | Huawei Technologies Co., Ltd. | Network Hotspot Control Method and Related Device |
CN110474850A (zh) * | 2019-08-23 | 2019-11-19 | 苏宁云计算有限公司 | 业务接口的流量控制方法、装置、计算机设备和存储介质 |
CN110858843A (zh) * | 2018-08-22 | 2020-03-03 | 重庆小雨点小额贷款有限公司 | 业务请求处理方法、装置及计算机可读存储介质 |
CN111131058A (zh) * | 2019-11-25 | 2020-05-08 | 泰康保险集团股份有限公司 | 访问量控制方法和装置 |
CN111125175A (zh) * | 2019-12-20 | 2020-05-08 | 北京奇艺世纪科技有限公司 | 业务数据的查询方法和装置、存储介质、电子装置 |
CN111600807A (zh) * | 2020-04-14 | 2020-08-28 | 网宿科技股份有限公司 | 一种基于api网关设备的流量控制方法和系统 |
CN112398945A (zh) * | 2020-11-16 | 2021-02-23 | 中国工商银行股份有限公司 | 一种基于背压的业务处理方法及装置 |
CN112615795A (zh) * | 2020-12-25 | 2021-04-06 | 北京百度网讯科技有限公司 | 流量控制方法、装置、电子设备、存储介质及产品 |
CN112751847A (zh) * | 2020-12-28 | 2021-05-04 | 深圳市优必选科技股份有限公司 | 接口调用请求的处理方法、装置、电子设备及存储介质 |
KR20210091075A (ko) * | 2020-12-15 | 2021-07-21 | 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 | 트래픽 조정 방법 및 장치 |
CN114257551A (zh) * | 2021-12-07 | 2022-03-29 | 中信银行股份有限公司 | 一种分布式限流的方法及系统、存储介质 |
-
2022
- 2022-03-30 CN CN202210327280.1A patent/CN114745329B/zh active Active
Patent Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060012134A (ko) * | 2004-08-02 | 2006-02-07 | 주식회사 케이티 | 기업용 실시간 서비스 관리 시스템 및 그 방법 |
CN103546388A (zh) * | 2012-07-10 | 2014-01-29 | 阿里巴巴集团控股有限公司 | 一种流量控制方法及装置 |
US20170272371A1 (en) * | 2016-03-21 | 2017-09-21 | Alibaba Group Holding Limited | Flow control in connection with an access request |
CN107613528A (zh) * | 2016-07-11 | 2018-01-19 | 华为技术有限公司 | 一种业务流量的控制方法及系统 |
US20190320349A1 (en) * | 2016-11-04 | 2019-10-17 | Huawei Technologies Co., Ltd. | Network Hotspot Control Method and Related Device |
CN107770088A (zh) * | 2017-09-06 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 一种流量控制方法及装置 |
CN108573013A (zh) * | 2017-12-08 | 2018-09-25 | 北京金山云网络技术有限公司 | 请求处理方法、装置、电子设备及计算机可读存储介质 |
CN108073465A (zh) * | 2017-12-29 | 2018-05-25 | 中国平安人寿保险股份有限公司 | 动态限流方法、Nginx服务器、存储介质及装置 |
CN108400944A (zh) * | 2018-05-31 | 2018-08-14 | 深圳市零度智控科技有限公司 | 网络流量控制方法、装置及计算机可读存储介质 |
CN109087055A (zh) * | 2018-06-06 | 2018-12-25 | 北京达佳互联信息技术有限公司 | 业务请求的控制方法和装置 |
CN110858843A (zh) * | 2018-08-22 | 2020-03-03 | 重庆小雨点小额贷款有限公司 | 业务请求处理方法、装置及计算机可读存储介质 |
CN110213173A (zh) * | 2019-06-06 | 2019-09-06 | 北京百度网讯科技有限公司 | 流量控制方法及装置、系统、服务器、计算机可读介质 |
WO2021036437A1 (zh) * | 2019-08-23 | 2021-03-04 | 苏宁易购集团股份有限公司 | 业务接口的流量控制方法、装置、计算机设备和存储介质 |
CN110474850A (zh) * | 2019-08-23 | 2019-11-19 | 苏宁云计算有限公司 | 业务接口的流量控制方法、装置、计算机设备和存储介质 |
CN111131058A (zh) * | 2019-11-25 | 2020-05-08 | 泰康保险集团股份有限公司 | 访问量控制方法和装置 |
CN111125175A (zh) * | 2019-12-20 | 2020-05-08 | 北京奇艺世纪科技有限公司 | 业务数据的查询方法和装置、存储介质、电子装置 |
CN111600807A (zh) * | 2020-04-14 | 2020-08-28 | 网宿科技股份有限公司 | 一种基于api网关设备的流量控制方法和系统 |
CN112398945A (zh) * | 2020-11-16 | 2021-02-23 | 中国工商银行股份有限公司 | 一种基于背压的业务处理方法及装置 |
KR20210091075A (ko) * | 2020-12-15 | 2021-07-21 | 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 | 트래픽 조정 방법 및 장치 |
CN112615795A (zh) * | 2020-12-25 | 2021-04-06 | 北京百度网讯科技有限公司 | 流量控制方法、装置、电子设备、存储介质及产品 |
CN112751847A (zh) * | 2020-12-28 | 2021-05-04 | 深圳市优必选科技股份有限公司 | 接口调用请求的处理方法、装置、电子设备及存储介质 |
CN114257551A (zh) * | 2021-12-07 | 2022-03-29 | 中信银行股份有限公司 | 一种分布式限流的方法及系统、存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115665074A (zh) * | 2022-10-08 | 2023-01-31 | 广州市玄武无线科技股份有限公司 | 消息限流发送方法、装置、设备及存储介质 |
CN115665074B (zh) * | 2022-10-08 | 2023-09-15 | 广州市玄武无线科技股份有限公司 | 消息限流发送方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114745329B (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101562155B1 (ko) | 서비스 프로세스 제어 방법 및 네트워크 장치 | |
KR101781339B1 (ko) | 클라이언트를 갱신하기 위한 방법 및 디바이스 | |
EP2333686B1 (en) | Anti-virus protection system and method thereof | |
CN110858229B (zh) | 数据处理方法、设备、访问控制系统及存储介质 | |
US20210344638A1 (en) | Method for network traffic forwarding, request sending, and communication acceleration, forwarding server and node server | |
CN111460504B (zh) | 业务处理方法、装置、节点设备及存储介质 | |
CN111901249A (zh) | 业务限流方法、装置、设备及存储介质 | |
CN113296859B (zh) | 页面加载方法及装置、存储介质、电子装置 | |
CN113591068B (zh) | 一种在线登录设备管理方法、装置及电子设备 | |
CN114745329B (zh) | 流量控制方法和装置、存储介质及电子装置 | |
CN105989457A (zh) | 一种信息查询方法及装置 | |
KR101509226B1 (ko) | 모바일 검색 환경에서 모바일 url을 제공하는 시스템 및 그 방법 | |
CN104144170A (zh) | 网页地址的过滤方法、装置和系统 | |
CN111443918A (zh) | 业务对象安装包的渠道接入方法及装置 | |
KR101846778B1 (ko) | Id 확인 서비스 방법 및 이를 적용한 m2m 시스템 | |
CN110417777B (zh) | 一种优化的微服务间通信的方法及装置 | |
CN110708355A (zh) | 一种文件上传的方法、系统、设备及可读存储介质 | |
CN113992664B (zh) | 一种集群通信的方法、相关装置及存储介质 | |
CN105812411A (zh) | 定制信息的推荐方法和装置 | |
US11057489B2 (en) | Content deployment method and delivery controller | |
CN115826845A (zh) | 存储资源的分配方法和装置、存储介质、电子装置 | |
CN112783673A (zh) | 一种调用链的确定方法、装置、计算机设备及存储介质 | |
US10326595B1 (en) | Load balancing probabilistic robot detection | |
CN113037792B (zh) | 一种业务识别参数的验证方法、装置及网关 | |
CN114143083B (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 |