CN114095444A - 限流方法、装置及电子设备 - Google Patents
限流方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114095444A CN114095444A CN202010680118.9A CN202010680118A CN114095444A CN 114095444 A CN114095444 A CN 114095444A CN 202010680118 A CN202010680118 A CN 202010680118A CN 114095444 A CN114095444 A CN 114095444A
- Authority
- CN
- China
- Prior art keywords
- tokens
- token bucket
- token
- adjusted
- preset
- 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
- 230000000670 limiting effect Effects 0.000 title claims abstract description 60
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral 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
- H04L47/215—Flow control; Congestion control using token-bucket
-
- 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
- H04L47/22—Traffic shaping
- H04L47/225—Determination of shaping rate, e.g. using a moving window
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及通信技术领域,提供一种限流方法、装置及电子设备,所述方法包括:获取滑动时间窗口内令牌桶中的平均令牌数,所述滑动时间窗口为包含多个连续的时间片段的时间窗口,所述滑动时间窗口的窗口后沿为当前时刻;获取当前时刻所述令牌桶中的第一令牌数;基于所述平均令牌数与所述第一令牌数调整所述令牌桶中的令牌数;基于调整后的所述令牌桶中的令牌数进行限流处理。本发明实施例能够提高限流的灵活性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种限流方法、装置及电子设备。
背景技术
令牌桶算法来源于计算机网络,在网络传输数据时,为了防止网络阻塞,需限制流出网络的流量,使流量以比较均匀的速度向外发送。令牌桶算法可以控制发送到网络上数据的数目,并允许突发数据的发送。大小固定的令牌桶可自行以恒定的速率源源不断地产生令牌。
目前,令牌桶仅能以恒定的速率产生令牌,导致限流的灵活性较差。
发明内容
本发明实施例提供一种限流方法、装置及电子设备,以解决现有技术中令牌桶仅能以恒定的速率产生令牌,导致限流的灵活性较差的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种限流方法,所述方法包括:
获取滑动时间窗口内令牌桶中的平均令牌数,所述滑动时间窗口为包含多个连续的时间片段的时间窗口,所述滑动时间窗口的窗口后沿为当前时刻;
获取当前时刻所述令牌桶中的第一令牌数;
基于所述平均令牌数与所述第一令牌数调整所述令牌桶中的令牌数;
基于调整后的所述令牌桶中的令牌数进行限流处理。
第二方面,本发明实施例提供了一种限流装置,所述限流装置包括:
第一获取模块,用于获取滑动时间窗口内令牌桶中的平均令牌数,所述滑动时间窗口为包含多个连续的时间片段的时间窗口,所述滑动时间窗口的窗口后沿为当前时刻;
第二获取模块,用于获取当前时刻所述令牌桶中的第一令牌数;
调整模块,用于基于所述平均令牌数与所述第一令牌数调整所述令牌桶中的令牌数;
限流模块,用于基于调整后的所述令牌桶中的令牌数进行限流处理。
第三方面,本发明实施例提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现上述第一方面所述的限流方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的限流方法的步骤。
本实施例中,获取滑动时间窗口内令牌桶中的平均令牌数,所述滑动时间窗口为包含多个连续的时间片段的时间窗口,所述滑动时间窗口的窗口后沿为当前时刻;获取当前时刻所述令牌桶中的第一令牌数;基于所述平均令牌数与所述第一令牌数调整所述令牌桶中的令牌数;基于调整后的所述令牌桶中的令牌数进行限流处理。这样,根据滑动时间窗口监测滑动时间窗口内的令牌桶中的令牌数,预测***并发量,从而动态调整令牌桶生成令牌的速率,能够实现滑动时间窗口和令牌桶算法相结合进行动态限流,从而提高限流的灵活性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种限流方法的流程图之一;
图2是本发明实施例提供的一种限流方法的流程图之二;
图3是本发明实施例提供的一种限流装置的结构示意图之一;
图4是本发明实施例提供的一种限流装置的结构示意图之二;
图5是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,图1是本发明实施例提供的一种限流方法的流程图,如图1所示,包括以下步骤:
步骤101、获取滑动时间窗口内令牌桶中的平均令牌数,所述滑动时间窗口为包含多个连续的时间片段的时间窗口,所述滑动时间窗口的窗口后沿为当前时刻。
其中,时间片段所表征的时间可以为0.5s,或者可以为1s,或者可以为2s,等等,本实施例对此不进行限定。以滑动时间窗口包含6个时间片段,每个时间片段为0.5s为例,每个滑动时间窗口表征的时间为3s,则当前时刻往前3s均在滑动时间窗口内。滑动时间窗口每过一个时间片段,时间窗口向后移动一个时间片段,时间窗口划分的时间片段越小,限流控制越准确。
另外,所述滑动时间窗口内令牌桶中的平均令牌数可以为所述多个连续的时间片段的令牌数的平均值。可以在每个时间片段获取一次令牌桶中的令牌数,或者,可以在每个时间片段获取多次令牌桶中的令牌数。以在每个时间片段获取一次令牌桶中的令牌数为例,可以在时间片段的开始时刻获取令牌桶中的令牌数,或者可以在时间片段的结束时刻获取令牌桶中的令牌数;或者还可以在时间片段的中间时刻获取令牌桶中的令牌数,等等,本实施例对此不进行限定。
以滑动时间窗口包含6个时间片段,每个时间片段为1s为例,若当前时刻为08时00分06秒,则滑动时间窗口的第一时间片段为:08时00分00秒至08时00分01秒,滑动时间窗口的最后一个时间片段为:08时00分05秒至08时00分06秒。作为一种实施方式,可以在时间片段的开始时刻获取令牌桶中的令牌数,例如,可以分别获取08时00分00秒、08时00分01秒、08时00分02秒、08时00分03秒、08时00分04秒及08时00分05秒时令牌桶中的令牌数,将获取到的六个令牌数求平均值,得到该滑动时间窗口内令牌桶中的平均令牌数。
进一步的,所述限流方法可以应用于电子设备。所述令牌桶可以是电子设备的内部存储池,用于容纳令牌。
步骤102、获取当前时刻所述令牌桶中的第一令牌数。
其中,所述第一令牌数可以为当前时刻所述令牌桶中的令牌数。
步骤103、基于所述平均令牌数与所述第一令牌数调整所述令牌桶中的令牌数。
其中,所述基于所述平均令牌数与所述第一令牌数调整所述令牌桶中的令牌数,可以包括:在所述平均令牌数小于第一预设系数与所述第一令牌数的乘积的情况下,增大所述令牌桶中的令牌数,以得到所述调整后的所述令牌桶中的令牌数,在所述平均令牌数大于第二预设系数与所述第一令牌数的乘积的情况下,减小所述令牌桶中的令牌数,以得到所述调整后的所述令牌桶中的令牌数,所述第一预设系数小于所述第二预设系数;或者,还可以包括:在所述平均令牌数与第一令牌数的差值小于第一预设差值的情况下,增大所述令牌桶中的令牌数,在所述平均令牌数与第一令牌数的差值大于第二预设差值的情况下,减少所述令牌桶中的令牌数,第一预设差值小于第二预设差值;等等,本实施例对此不进行限定。
步骤104、基于调整后的所述令牌桶中的令牌数进行限流处理。
其中,在调整所述令牌桶中的令牌数后,以调整后的所述令牌桶中的令牌数进行限流处理。每允许一次访问请求,令牌桶中的令牌数减一,直至令牌桶中的令牌数达到第三预设阈值,此时,若再接收到访问请求,则拒绝所述访问请求,以达到限流目的。
本实施例中的限流方法可以应用于网关设备,所述网关设备可以为***中的网关设备,通过网关设备进行限流,防止应用访问频率过大导致***资源阻塞甚至***崩溃,能够保证***健康及稳定地运行。示例地,所述网关设备可以为能力开放平台中的网关设备。随着接入能力开放平台的应用越来越多,访问量激增,为了防止应用访问频率过大导致资源阻塞甚至***崩溃,使业务***健康及稳定的运行,能力开放平台引入网关,通过网关实现流量控制。
示例地,本实施例中的限流方法可以应用于***中的网关。在***启动后,***启动定时任务,所述定时任务用于到达定时时间后根据***当前并发量,动态更新令牌桶内的令牌数。网关实时接收访问请求,进行流控过滤。具体的,网关从令牌桶获取令牌,若获取不到令牌,则达到流控条件,直接拒绝访问请求;否则,当前访问请求未达到流控条件,允许该访问请求,对该访问请求进行后续处理。
目前采用令牌桶算法进行限流是采用恒定的令牌生成速率,本实施例中令牌桶生成令牌的速率可以根据***实际的并发量动态调整,避免恒定的令牌生成速率配置较小,在***能力范围内无法适应更高的并发量,浪费***资源;同时避免恒定的令牌生成速率配置过高,当访问请求量处于低谷时,令牌桶中的令牌数一直处于高位,同样浪费了***资源。本实施例中能够动态调整令牌桶中令牌数的生成量,资源利用率较高。
本实施例中,获取滑动时间窗口内令牌桶中的平均令牌数,所述滑动时间窗口为包含多个连续的时间片段的时间窗口,所述滑动时间窗口的窗口后沿为当前时刻;获取当前时刻所述令牌桶中的第一令牌数;基于所述平均令牌数与所述第一令牌数调整所述令牌桶中的令牌数;基于调整后的所述令牌桶中的令牌数进行限流处理。这样,根据滑动时间窗口监测滑动时间窗口内的令牌桶中的令牌数,预测***并发量,从而动态调整令牌桶生成令牌的速率,能够实现滑动时间窗口和令牌桶算法相结合进行动态限流,从而提高限流的灵活性。
可选的,所述基于所述平均令牌数与所述第一令牌数调整所述令牌桶中的令牌数,包括:
在所述平均令牌数小于第一预设系数与所述第一令牌数的乘积的情况下,增大所述令牌桶中的令牌数,以得到所述调整后的所述令牌桶中的令牌数;
在所述平均令牌数大于第二预设系数与所述第一令牌数的乘积的情况下,减小所述令牌桶中的令牌数,以得到所述调整后的所述令牌桶中的令牌数,所述第一预设系数小于所述第二预设系数。
其中,所述第一预设系数可以为0.1,或者0.2,或者0.3,等等,本实施例对此不进行限定。所述第二预设系数可以为0.7,或者0.8,或者0.9,等等,本实施例对此不进行限定。
另外,所述增大所述令牌桶中的令牌数,可以包括:计算所述第一令牌数与第一调整值的和,得到所述调整后的所述令牌桶中的令牌数,所述第一调整值大于0;或者,还可以包括:计算第一令牌数与第一调整系数的乘积,得到所述调整后的所述令牌桶中的令牌数,所述第一调整系数大于1;等等,本实施例对此不进行限定。所述减小所述令牌桶中的令牌数,可以包括:计算所述第一令牌数与第二调整值的差,得到所述调整后的所述令牌桶中的令牌数,所述第二调整值大于0,所述第一调整值可以与所述第二调整值相同或不同;或者,还可以包括:计算第一令牌数与第二调整系数的乘积,得到所述调整后的所述令牌桶中的令牌数,所述第二调整系数小于1;等等,本实施例对此不进行限定。
进一步的,在所述平均令牌数大于或等于第一预设系数与所述第一令牌数的乘积且所述平均令牌数小于或等于第二预设系数与所述第一令牌数的乘积的情况下,可以保持所述令牌桶中的令牌数不变。
该实施方式中,所述平均令牌数大于第一预设系数与所述第一令牌数的乘积,可以认为***并发量较低,减小所述令牌桶中的令牌数,可以缩小令牌桶容量;所述平均令牌数小于第二预设系数与所述第一令牌数的乘积,可以认为***并发量较高,增大所述令牌桶中的令牌数,可以增加令牌桶容量。通过缩小或增大令牌桶容量,实现令牌桶内令牌数的灵活控制,限流效果较好。
可选的,所述增大所述令牌桶中的令牌数,包括:
计算所述第一令牌数与预设调整值的和,得到所述调整后的所述令牌桶中的令牌数;
所述减小所述令牌桶中的令牌数,包括:
计算所述第一令牌数与所述预设调整值的差,得到所述调整后的所述令牌桶中的令牌数。
其中,所述预设调整值可以为根据经验获得,例如,可以根据历史访问量确定预设调整值;或者,可以通过调试获得,可以经过多次调试选取合适的值作为预设调整值,以实现较好的限流效果。在需要增大所述令牌桶中的令牌数时,所述调整后的所述令牌桶中的令牌数可以为所述第一令牌数与预设调整值的和值;在需要减小所述令牌桶中的令牌数时,所述调整后的所述令牌桶中的令牌数可以为所述第一令牌数与所述预设调整值的差值。
该实施方式中,通过预设调整值动态调整所述令牌桶中的令牌数,便于调试获取到合适的预设调整值进行限流以达到较好的限流效果,避免引入较多的参数增大调试难度。
可选的,所述增大所述令牌桶中的令牌数,以得到所述调整后的所述令牌桶中的令牌数之后,所述方法还包括:
在所述调整后的所述令牌桶中的令牌数大于第一预设阈值的情况下,将所述调整后的所述令牌桶中的令牌数更新为所述第一预设阈值;
所述减小所述令牌桶中的令牌数,以得到所述调整后的所述令牌桶中的令牌数之后,所述方法还包括:
在所述调整后的所述令牌桶中的令牌数小于第二预设阈值的情况下,将所述调整后的所述令牌桶中的令牌数更新为所述第二预设阈值,其中,所述第一预设阈值大于所述第二预设阈值。
其中,所述第一预设阈值和第二预设阈值可以根据经验获得,例如,可以将历史访问量的最大值和最小值分别作为第一预设阈值和第二预设阈值。
该实施方式中,通过第一预设阈值和第二预设阈值限制了调整后的所述令牌桶中的最大令牌数和最小令牌数,避免无限制增大或缩小令牌桶容量。
可选的,所述基于调整后的所述令牌桶中的令牌数进行限流处理,包括:
实时接收访问请求;
在所述令牌桶中的令牌数大于第三预设阈值的情况下,允许所述访问请求,并将所述令牌桶中的令牌数减一;
在所述令牌桶中的令牌数小于或等于所述第三预设阈值的情况下,拒绝所述访问请求。
其中,所述第三预设阈值可以为较小的数值,例如,可以为0。可以按照一定时间间隔调整所述令牌桶中的令牌数,例如,可以以一个时间片段为间隔调整所述令牌桶中的令牌数,可以在每个时间片段的开始时刻调整所述令牌桶中的令牌数。
该实施方式中,基于令牌桶中的令牌数对实时接收的访问请求进行放行或拒绝放行,从而达到限流的目的;并且通过滑动时间窗口和令牌桶算法相结合进行动态限流,进行流控的精度较高。
作为一种具体的实施方式,限流方法应用于***中的网关。在***启动时,初始化配置第一预设阈值max、第二预设阈值min及预设调整值x。***启动后,启动定时任务,并周期执行定时任务。如图2所示,在每个任务周期执行如下操作:
步骤201:定义滑动时间窗口大小,计算每个滑动时间窗口内令牌桶中的平均令牌数avg;
步骤202:获取令牌桶中的令牌数count;
步骤203:判断avg是否大于count*80%;若是,则执行步骤204,否则执行步骤207;
步骤204:判断min是否小于count-x;若是,则执行步骤205,否则执行步骤206;
步骤205:调整令牌数count为count-x;
步骤206:调整令牌数count为min;
步骤207:判断avg是否小于count*20%,若是,则执行步骤208,否则执行步骤211;
步骤208:判断count+x是否大于max;若是,则执行步骤209,否则执行步骤210;
步骤209:调整令牌数count为max;
步骤210:调整令牌数count为count+x;
步骤211:保持令牌数count不变。
其中,avg大于count*80%,可以认为一个滑动时间窗口内令牌桶中令牌数一直处于较多的状态,当前***访问请求并发量不高,可以通过减小所述令牌桶中的令牌数释放部分并发资源;avg小于count*20%,可以认为一个滑动时间窗口内令牌桶中令牌数一直处于较少的状态,当前***访问请求并发量较高,可以通过增大所述令牌桶中的令牌数获取更多的并发资源。
参见图3,图3是本发明实施例提供的一种限流装置的结构示意图之一,如图3所示,限流装置300包括:
第一获取模块301,用于获取滑动时间窗口内令牌桶中的平均令牌数,所述滑动时间窗口为包含多个连续的时间片段的时间窗口,所述滑动时间窗口的窗口后沿为当前时刻;
第二获取模块302,用于获取当前时刻所述令牌桶中的第一令牌数;
调整模块303,用于基于所述平均令牌数与所述第一令牌数调整所述令牌桶中的令牌数;
限流模块304,用于基于调整后的所述令牌桶中的令牌数进行限流处理。
可选的,如图4所示,所述调整模块303包括:
第一调整单元3031,用于在所述平均令牌数小于第一预设系数与所述第一令牌数的乘积的情况下,增大所述令牌桶中的令牌数,以得到所述调整后的所述令牌桶中的令牌数;
第二调整单元3032,用于在所述平均令牌数大于第二预设系数与所述第一令牌数的乘积的情况下,减小所述令牌桶中的令牌数,以得到所述调整后的所述令牌桶中的令牌数,所述第一预设系数小于所述第二预设系数。
可选的,所述第一调整单元3031具体用于:
在所述平均令牌数小于第一预设系数与所述第一令牌数的乘积的情况下,计算所述第一令牌数与预设调整值的和,得到所述调整后的所述令牌桶中的令牌数;
所述第二调整单元3032具体用于:
在所述平均令牌数大于第二预设系数与所述第一令牌数的乘积的情况下,计算所述第一令牌数与所述预设调整值的差,得到所述调整后的所述令牌桶中的令牌数。
可选的,所述第一调整单元3031还用于:
在所述调整后的所述令牌桶中的令牌数大于第一预设阈值的情况下,将所述调整后的所述令牌桶中的令牌数确定为所述第一预设阈值;
所述第二调整单元3032还用于:
在所述调整后的所述令牌桶中的令牌数小于第二预设阈值的情况下,将所述调整后的所述令牌桶中的令牌数确定为所述第二预设阈值,其中,所述第一预设阈值大于所述第二预设阈值。
可选的,所述限流模块304具体用于:
实时接收访问请求;
在所述令牌桶中的令牌数大于第三预设阈值的情况下,允许所述访问请求,并将所述令牌桶中的令牌数减一;
在所述令牌桶中的令牌数小于或等于所述第三预设阈值的情况下,拒绝所述访问请求。
限流装置能够实现图1的方法实施例中的各个过程,为避免重复,这里不再赘述。
参见图5,图5是本发明实施例提供的一种电子设备的结构示意图,如图5所示,电子设备400包括:存储器402、处理器401及存储在所述存储器402上并可在所述处理器401上运行的程序,其中:
所述处理器401读取存储器402中的程序,用于执行:
获取滑动时间窗口内令牌桶中的平均令牌数,所述滑动时间窗口为包含多个连续的时间片段的时间窗口,所述滑动时间窗口的窗口后沿为当前时刻;
获取当前时刻所述令牌桶中的第一令牌数;
基于所述平均令牌数与所述第一令牌数调整所述令牌桶中的令牌数;
基于调整后的所述令牌桶中的令牌数进行限流处理。
可选的,所述处理器401执行的所述基于所述平均令牌数与所述第一令牌数调整所述令牌桶中的令牌数,包括:
在所述平均令牌数小于第一预设系数与所述第一令牌数的乘积的情况下,增大所述令牌桶中的令牌数,以得到所述调整后的所述令牌桶中的令牌数;
在所述平均令牌数大于第二预设系数与所述第一令牌数的乘积的情况下,减小所述令牌桶中的令牌数,以得到所述调整后的所述令牌桶中的令牌数,所述第一预设系数小于所述第二预设系数。
可选的,所述处理器401执行的所述增大所述令牌桶中的令牌数,包括:
计算所述第一令牌数与预设调整值的和,得到所述调整后的所述令牌桶中的令牌数;
所述处理器401执行的所述减小所述令牌桶中的令牌数,包括:
计算所述第一令牌数与所述预设调整值的差,得到所述调整后的所述令牌桶中的令牌数。
可选的,所述处理器401还用于执行:
在所述调整后的所述令牌桶中的令牌数大于第一预设阈值的情况下,将所述调整后的所述令牌桶中的令牌数更新为所述第一预设阈值;
所述减小所述令牌桶中的令牌数,以得到所述调整后的所述令牌桶中的令牌数之后,所述方法还包括:
在所述调整后的所述令牌桶中的令牌数小于第二预设阈值的情况下,将所述调整后的所述令牌桶中的令牌数更新为所述第二预设阈值,其中,所述第一预设阈值大于所述第二预设阈值。
可选的,所述处理器401执行的所述基于调整后的所述令牌桶中的令牌数进行限流处理,包括:
实时接收访问请求;
在所述令牌桶中的令牌数大于第三预设阈值的情况下,允许所述访问请求,并将所述令牌桶中的令牌数减一;
在所述令牌桶中的令牌数小于或等于所述第三预设阈值的情况下,拒绝所述访问请求。
在图5中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器401代表的一个或多个处理器和存储器402代表的存储器的各种电路链接在一起。总线架构还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。
处理器401负责管理总线架构和通常的处理,存储器402可以存储处理器401在执行操作时所使用的数据。
需要说明的是,本发明实施例方法实施例中的任意实施方式都可以被本实施例中的上述电子设备所实现,以及达到相同的有益效果,此处不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述限流方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (11)
1.一种限流方法,其特征在于,所述方法包括:
获取滑动时间窗口内令牌桶中的平均令牌数,所述滑动时间窗口为包含多个连续的时间片段的时间窗口,所述滑动时间窗口的窗口后沿为当前时刻;
获取当前时刻所述令牌桶中的第一令牌数;
基于所述平均令牌数与所述第一令牌数调整所述令牌桶中的令牌数;
基于调整后的所述令牌桶中的令牌数进行限流处理。
2.根据权利要求1所述的方法,其特征在于,所述基于所述平均令牌数与所述第一令牌数调整所述令牌桶中的令牌数,包括:
在所述平均令牌数小于第一预设系数与所述第一令牌数的乘积的情况下,增大所述令牌桶中的令牌数,以得到所述调整后的所述令牌桶中的令牌数;
在所述平均令牌数大于第二预设系数与所述第一令牌数的乘积的情况下,减小所述令牌桶中的令牌数,以得到所述调整后的所述令牌桶中的令牌数,所述第一预设系数小于所述第二预设系数。
3.根据权利要求2所述的方法,其特征在于,所述增大所述令牌桶中的令牌数,包括:
计算所述第一令牌数与预设调整值的和,得到所述调整后的所述令牌桶中的令牌数;
所述减小所述令牌桶中的令牌数,包括:
计算所述第一令牌数与所述预设调整值的差,得到所述调整后的所述令牌桶中的令牌数。
4.根据权利要求2所述的方法,其特征在于,所述增大所述令牌桶中的令牌数,以得到所述调整后的所述令牌桶中的令牌数之后,所述方法还包括:
在所述调整后的所述令牌桶中的令牌数大于第一预设阈值的情况下,将所述调整后的所述令牌桶中的令牌数更新为所述第一预设阈值;
所述减小所述令牌桶中的令牌数,以得到所述调整后的所述令牌桶中的令牌数之后,所述方法还包括:
在所述调整后的所述令牌桶中的令牌数小于第二预设阈值的情况下,将所述调整后的所述令牌桶中的令牌数更新为所述第二预设阈值,其中,所述第一预设阈值大于所述第二预设阈值。
5.根据权利要求1所述的方法,其特征在于,所述基于调整后的所述令牌桶中的令牌数进行限流处理,包括:
实时接收访问请求;
在所述令牌桶中的令牌数大于第三预设阈值的情况下,允许所述访问请求,并将所述令牌桶中的令牌数减一;
在所述令牌桶中的令牌数小于或等于所述第三预设阈值的情况下,拒绝所述访问请求。
6.一种限流装置,其特征在于,所述限流装置包括:
第一获取模块,用于获取滑动时间窗口内令牌桶中的平均令牌数,所述滑动时间窗口为包含多个连续的时间片段的时间窗口,所述滑动时间窗口的窗口后沿为当前时刻;
第二获取模块,用于获取当前时刻所述令牌桶中的第一令牌数;
调整模块,用于基于所述平均令牌数与所述第一令牌数调整所述令牌桶中的令牌数;
限流模块,用于基于调整后的所述令牌桶中的令牌数进行限流处理。
7.根据权利要求6所述的限流装置,其特征在于,所述调整模块包括:
第一调整单元,用于在所述平均令牌数小于第一预设系数与所述第一令牌数的乘积的情况下,增大所述令牌桶中的令牌数,以得到所述调整后的所述令牌桶中的令牌数;
第二调整单元,用于在所述平均令牌数大于第二预设系数与所述第一令牌数的乘积的情况下,减小所述令牌桶中的令牌数,以得到所述调整后的所述令牌桶中的令牌数,所述第一预设系数小于所述第二预设系数。
8.根据权利要求7所述的限流装置,其特征在于,所述第一调整单元具体用于:
在所述平均令牌数小于第一预设系数与所述第一令牌数的乘积的情况下,计算所述第一令牌数与预设调整值的和,得到所述调整后的所述令牌桶中的令牌数;
所述第二调整单元具体用于:
在所述平均令牌数大于第二预设系数与所述第一令牌数的乘积的情况下,计算所述第一令牌数与所述预设调整值的差,得到所述调整后的所述令牌桶中的令牌数。
9.根据权利要求7所述的限流装置,其特征在于,所述第一调整单元还用于:
在所述调整后的所述令牌桶中的令牌数大于第一预设阈值的情况下,将所述调整后的所述令牌桶中的令牌数确定为所述第一预设阈值;
所述第二调整单元还用于:
在所述调整后的所述令牌桶中的令牌数小于第二预设阈值的情况下,将所述调整后的所述令牌桶中的令牌数确定为所述第二预设阈值,其中,所述第一预设阈值大于所述第二预设阈值。
10.根据权利要求6所述的限流装置,其特征在于,所述限流模块具体用于:
实时接收访问请求;
在所述令牌桶中的令牌数大于第三预设阈值的情况下,允许所述访问请求,并将所述令牌桶中的令牌数减一;
在所述令牌桶中的令牌数小于或等于所述第三预设阈值的情况下,拒绝所述访问请求。
11.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如权利要求1至5中任一项所述的限流方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010680118.9A CN114095444B (zh) | 2020-07-15 | 2020-07-15 | 限流方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010680118.9A CN114095444B (zh) | 2020-07-15 | 2020-07-15 | 限流方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114095444A true CN114095444A (zh) | 2022-02-25 |
CN114095444B CN114095444B (zh) | 2023-11-10 |
Family
ID=80294794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010680118.9A Active CN114095444B (zh) | 2020-07-15 | 2020-07-15 | 限流方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114095444B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114785739A (zh) * | 2022-04-22 | 2022-07-22 | 天津中科曙光存储科技有限公司 | 逻辑卷服务质量的控制方法、装置、设备及介质 |
CN115941610A (zh) * | 2022-12-09 | 2023-04-07 | 中联智慧农业股份有限公司 | 基于令牌桶算法的限流方法、限流装置及电子设备 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741603A (zh) * | 2008-11-11 | 2010-06-16 | 中兴通讯股份有限公司 | 一种基于令牌桶的流量监管方法及设备 |
CN102420773A (zh) * | 2012-01-05 | 2012-04-18 | 北京网御星云信息技术有限公司 | 一种基于令牌桶算法的数据传输方法及流量控制装置 |
US20140112147A1 (en) * | 2012-10-19 | 2014-04-24 | Broadcom Corporation | Refresh mechanism for a token bucket |
CN104734989A (zh) * | 2013-12-23 | 2015-06-24 | 腾讯数码(天津)有限公司 | 基于令牌桶的数据传输流量调度方法及其*** |
WO2016086542A1 (zh) * | 2014-12-05 | 2016-06-09 | 中兴通讯股份有限公司 | 一种传输报文的方法及装置、计算机存储介质 |
CN106953812A (zh) * | 2016-01-07 | 2017-07-14 | 中兴通讯股份有限公司 | 一种数据报文传输控制方法和装置 |
CN107493241A (zh) * | 2016-06-13 | 2017-12-19 | 中兴通讯股份有限公司 | 一种令牌分配方法和装置 |
CN109714268A (zh) * | 2019-01-23 | 2019-05-03 | 平安科技(深圳)有限公司 | 一种虚拟私有云的流量控制方法及相关装置 |
CN109936511A (zh) * | 2017-12-19 | 2019-06-25 | 北京金山云网络技术有限公司 | 一种令牌获取方法、装置、服务器、终端设备及介质 |
CN110545246A (zh) * | 2018-05-29 | 2019-12-06 | 北京京东尚科信息技术有限公司 | 一种基于令牌桶的限流方法和装置 |
CN111083062A (zh) * | 2019-12-17 | 2020-04-28 | 深圳前海环融联易信息科技服务有限公司 | 基于权重机制的限流方法、装置、计算机设备及存储介质 |
CN111404836A (zh) * | 2020-03-30 | 2020-07-10 | 北京小米移动软件有限公司 | 数据传输控制方法、装置、控制中心、服务器及介质 |
-
2020
- 2020-07-15 CN CN202010680118.9A patent/CN114095444B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741603A (zh) * | 2008-11-11 | 2010-06-16 | 中兴通讯股份有限公司 | 一种基于令牌桶的流量监管方法及设备 |
CN102420773A (zh) * | 2012-01-05 | 2012-04-18 | 北京网御星云信息技术有限公司 | 一种基于令牌桶算法的数据传输方法及流量控制装置 |
US20140112147A1 (en) * | 2012-10-19 | 2014-04-24 | Broadcom Corporation | Refresh mechanism for a token bucket |
CN104734989A (zh) * | 2013-12-23 | 2015-06-24 | 腾讯数码(天津)有限公司 | 基于令牌桶的数据传输流量调度方法及其*** |
WO2016086542A1 (zh) * | 2014-12-05 | 2016-06-09 | 中兴通讯股份有限公司 | 一种传输报文的方法及装置、计算机存储介质 |
CN106953812A (zh) * | 2016-01-07 | 2017-07-14 | 中兴通讯股份有限公司 | 一种数据报文传输控制方法和装置 |
CN107493241A (zh) * | 2016-06-13 | 2017-12-19 | 中兴通讯股份有限公司 | 一种令牌分配方法和装置 |
CN109936511A (zh) * | 2017-12-19 | 2019-06-25 | 北京金山云网络技术有限公司 | 一种令牌获取方法、装置、服务器、终端设备及介质 |
CN110545246A (zh) * | 2018-05-29 | 2019-12-06 | 北京京东尚科信息技术有限公司 | 一种基于令牌桶的限流方法和装置 |
CN109714268A (zh) * | 2019-01-23 | 2019-05-03 | 平安科技(深圳)有限公司 | 一种虚拟私有云的流量控制方法及相关装置 |
CN111083062A (zh) * | 2019-12-17 | 2020-04-28 | 深圳前海环融联易信息科技服务有限公司 | 基于权重机制的限流方法、装置、计算机设备及存储介质 |
CN111404836A (zh) * | 2020-03-30 | 2020-07-10 | 北京小米移动软件有限公司 | 数据传输控制方法、装置、控制中心、服务器及介质 |
Non-Patent Citations (2)
Title |
---|
BAIHAQI SIREGAR; ARDIAN FADLI; AINUL HIZRIADI: "Controlling of Quality of Service in Campus Area Network Using OpenDaylight with Hierarchical Token Bucket Method", IEEE * |
马徐瀚;吴龙胜;赵坤鹏;陈庆宇;: "一种基于多令牌桶的数据风暴抑制单元", 微电子学与计算机, no. 09 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114785739A (zh) * | 2022-04-22 | 2022-07-22 | 天津中科曙光存储科技有限公司 | 逻辑卷服务质量的控制方法、装置、设备及介质 |
CN115941610A (zh) * | 2022-12-09 | 2023-04-07 | 中联智慧农业股份有限公司 | 基于令牌桶算法的限流方法、限流装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114095444B (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170331705A1 (en) | Resource Scaling Method on Cloud Platform and Cloud Platform | |
CN109525500B (zh) | 一种自调整阈值的信息处理方法及信息处理装置 | |
US20120078996A1 (en) | Polling Protocol for Automatic Load Limiting | |
CN114095444A (zh) | 限流方法、装置及电子设备 | |
CN105656810B (zh) | 一种更新应用程序的方法及装置 | |
CN112367276B (zh) | 基于网络流量优先级的网络资源动态自适应方法及*** | |
CN112003795A (zh) | 一种动态预防流量攻击的方法、***、设备及存储介质 | |
CN106210129B (zh) | 一种基于Web服务器配置的限流方法及*** | |
WO2016172848A1 (zh) | 一种调整云计算中虚拟资源的方法及装置 | |
CN111277640B (zh) | 用户请求处理方法、装置、***、计算机设备和存储介质 | |
CN111147395A (zh) | 一种网络资源调整方法及装置 | |
CN112817753A (zh) | 任务的处理方法及装置、存储介质、电子装置 | |
EP3148130A1 (en) | Traffic flow switching method and device | |
CN114860397B (zh) | 一种任务调度方法、装置及设备 | |
CN112035249A (zh) | 应用程序网络占比调节方法、装置及存储介质 | |
CN109981487B (zh) | 一种数据调度方法、装置、电子设备及可读存储介质 | |
CN112783641A (zh) | 一种服务接口流控方法及装置 | |
CN115498735A (zh) | 一种燃料电池单体电压监控方法及燃料电池控制器 | |
CN113453285B (zh) | 一种资源调整方法、装置及存储介质 | |
CN110752941A (zh) | 一种云存储***的qos控制方法、装置、存储介质和服务器 | |
CN109428901B (zh) | 消息处理方法以及消息处理装置 | |
CN110838989A (zh) | 一种用于基于令牌进行网络限流的方法和装置 | |
CN115515188A (zh) | 流量控制方法、装置、电子设备及存储介质 | |
CN113630339A (zh) | 流量转发方法及装置、电子设备和存储介质 | |
CN112308354A (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 |