CN114124820A - 流量控制方法、装置、电子设备及存储介质 - Google Patents

流量控制方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114124820A
CN114124820A CN202111353259.0A CN202111353259A CN114124820A CN 114124820 A CN114124820 A CN 114124820A CN 202111353259 A CN202111353259 A CN 202111353259A CN 114124820 A CN114124820 A CN 114124820A
Authority
CN
China
Prior art keywords
current
current limiting
limit
threshold
current limit
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.)
Pending
Application number
CN202111353259.0A
Other languages
English (en)
Inventor
郝应涛
王美青
吕军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jingdong Technology Holding Co Ltd
Original Assignee
Jingdong Technology Holding Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jingdong Technology Holding Co Ltd filed Critical Jingdong Technology Holding Co Ltd
Priority to CN202111353259.0A priority Critical patent/CN114124820A/zh
Publication of CN114124820A publication Critical patent/CN114124820A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种流量控制方法、装置、电子设备及存储介质,涉及数据处理领域。具体方案为:响应于客户端发起的业务请求,检测当前的网络流量值;将所述当前的网络流量值与限流阈值进行比对;响应于所述当前的网络流量值大于限流阈值,确定与当前时间信息对应的递增周期;其中,所述当前时间信息为所述当前的网络流量值大于所述限流阈值时所对应的时间信息;响应于在所述递增周期内未触发限流事件,基于所述预设的第一规则增大所述限流阈值。该方案通过对限流阈值进行渐进式调整,从而实现了渐进式限流的目的。

Description

流量控制方法、装置、电子设备及存储介质
技术领域
本申请涉及互联网技术领域,具体涉及数据处理领域,尤其涉及一种流量控制方法、装置、电子设备及存储介质。
背景技术
对于秒杀、大促等在秒级内流量激增几十倍甚至上百倍的场景,流量会瞬间达到限流上限,基于现有的流量控制方式,***需要经过一定的时间申请数据库连接、RPC(Remote Procedure Call,远程过程调用)连接等资源,但是在资源申请期间可能会由于资源不足的问题导致整个服务异常,甚至宕机。
发明内容
本申请提供了一种流量控制方法、装置、电子设备及存储介质。通过周期性渐进式调整限流阈值,给***一定的申请资源的时间,使其可以平稳地过渡到流量满负荷状态,从而可以避免出现服务器异常或者宕机的情况。
根据本申请的第一方面,提供了一种流量控制方法,包括:
响应于客户端发起的业务请求,检测当前的网络流量值;
将所述当前的网络流量值与限流阈值进行比对;
响应于所述当前的网络流量值大于限流阈值,
确定与当前时间信息对应的递增周期;其中,所述当前时间信息为所述当前的网络流量值大于所述限流阈值时所对应的时间信息;
响应于在所述递增周期内未触发限流事件,基于所述预设的第一规则增大所述限流阈值。
根据本申请的第二方面,提供了一种流量控制装置,包括:
第一检测模块,用于响应于客户端发起的业务请求,检测当前的网络流量值;
比对模块,用于将所述当前的网络流量值与限流阈值进行比对;
确定模块,用于确定与当前时间信息对应的递增周期;其中,所述当前时间信息为所述当前的网络流量值大于所述限流阈值时所对应的时间信息;
增大阈值模块,用于响应于在所述递增周期内未触发限流事件,基于所述预设的第一规则增大所述限流阈值。
根据本申请的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面所述的方法。
根据本申请的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行上述第一方面所述的方法。
根据本申请的技术方案,针对当前网络流量值大于限流阈值时,基于当前时间信息确定递增周期,并在该递增周期内未触发过限流事件时,以预设的方式增大限流阈值,来达到周期性地增加限流阈值,由于每个递增周期只允许一次增大限流阈值,所以可以通过使限流阈值渐进式增大,为资源的申请预留了一定的时间,使***能平稳地过渡到满负荷状态。此外,本方案也解决了现有技术中在流量突发时可能出现服务器异常或者宕机的问题,不仅可以保障***的安全,也可以提升用户体验。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例所提供的一种流量控制方法的流程图;
图2是本申请实施例所提供的另一种流量控制方法的流程图;
图3是本申请实施例所提供的又一种流量控制方法的流程图;
图4是本申请实施例所提供的又一种流量控制方法的流程图;
图5是本申请实施例所提供的一种流量控制装置的结构框图;
图6是本申请实施例所提供的另一种流量控制装置的结构框图;
图7示出了可以用来实施本申请的实施例的示例电子设备700的示意性框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,目前用于***限流的方式主要有计数器算法、漏斗算法和令牌桶算法,这些算法均是在***运行之初,或者某个时间点人工设置的限流上限,且这个限流上限是固定的。对于秒杀、大促等在秒级内流量激增几十倍甚至上百倍的场景,流量会瞬时达到限流上限,虽然***可以支持该流量,但是需要一定时间申请数据库连接、RPC连接等资源,所以在申请资源期间会由于资源补正的问题导致整个服务异常、甚至宕机。
为了解决上述问题,本申请提供了一种可以实现渐进式限流的流量控制方法、装置、电子设备及存储介质。
图1为本申请实施例提供的一种流量控制方法的流程图。需要说明的是,本申请实施例中的流量控制方法可以应用于本申请实施例中的流量控制装置,该装置可以配置于电子设备中。该流量控制方法可用于按业务线进行流量控制、按服务器进行流量控制、也可以是对于接口的流量控制,本申请对其应用场景不作限定。如图1所示,该方法包括:
步骤101,响应于客户端发起的业务请求,检测当前的网络流量值。
其中,当前的网络流量值可以根据应用场景来实时获取,在本申请实施例中可以使用当前时刻每秒业务请求的个数来表示业务请求的当前流量值。作为一种示例,该方法用于对某个业务线的网络请求进行流量控制,则在客户端发起该业务线的请求时,当前业务请求的流量值为当前时刻该业务线的请求的个数。作为另一种示例,若该方法用于对每个服务器进行流量控制,则当前的网络流量值为每个服务器接收的客户端发送的业务请求的个数。
步骤102,将当前的网络流量值与限流阈值进行比对。
可以理解,由于本申请实施例中,限流阈值的大小是动态调整的,所以此处的限流阈值是指限流器当前时刻对应的最新限流阈值。
步骤103,响应于当前的网络流量值大于限流阈值,确定与当前时间信息对应的递增周期;其中,当前时间信息为当前的网络流量值大于限流阈值时所对应的时间信息。
在本申请实施例中,递增周期可以理解为,从开始进行流量控制的时刻开始,将时间以一定的时间间隔划分为多个周期,被划分的多个周期为递增周期,且每个递增周期内最多触发一次限流阈值增大。当前的网络流量值大于限流阈值的时刻在哪个递增周期,就在该递增周期内增加限流器的阈值,所以若业务请求对应的流量值持续增大,则限流阈值会平稳地增大,给***申请资源预留了一定的时间,以使***支持的业务请求量与当前的网络流量值越来越接近,从而达到渐进式限流的目的,保障了***的安全运行。
作为一种示例,确定与当前时间信息对应的递增周期的实现方式可以为:若当前的网络流量值大于限流阈值,先确定当前时间信息,该当前时间信息为当前的网络流量值大于限流阈值时所对应的时间信息;再根据当前时间信息确定与该时间信息对应的递增周期。假如每个递增周期的时间为10s,8:00:00~8:00:10为一个递增周期,8:00:10~8:00:20也为一个递增周期,若当前时间信息为8:00:05,则其对应的递增周期为8:00:00~8:00:10这一递增周期。
步骤104,响应于在递增周期内未触发限流事件,基于预设的第一规则增大限流阈值。
也就是说,为了保障***业务请求的稳定性,本申请实施例在当前的网络流量值大于限流器的阈值时,采用周期性渐进式的方式逐步对限流阈值进行调整,以达到渐进式限流的目的。
在本申请实施例中,为了实现渐进式地增大限流阈值,保障每个递增周期内只允许增大一次限流阈值,所以需要检测该递增周期内是否已触发限流事件,也就是说,需要检测在该递增周期内对接收到的业务请求是否进行过限流处理。如果在该递增周期内对接收到的业务请求进行过限流处理,则说明在该递增周期内已增加过限流阈值,可以直接根据该限流阈值对接收到的业务请求进行限流处理。如果在该递增周期内对接收到的业务请求未进行过限流处理,则基于预设的第一规则增大限流阈值。
在本申请的一些实施例中,基于预设的第一规则增大限流阈值的实现方式可以为:基于预设的递增比例或者递增数量,增大限流阈值。举例而言,假如限流阈值为M,预设的递增比例为3%,则增大后的限流阈值=M×(1+3%);若预设的递增数量为30,则增大后的限流阈值=M+30;其中,若预设的递增比例或者递增数量均存在,可以规定以递增比例或者递增数量之一为准。
可以理解,客户端发起的业务请求均为实时的,也就是说在业务请求的同时也会实时地对接收到的业务请求进行流量控制,若当前时刻对限流阈值进行增加,则增大后的限流阈值可用于对当前时刻的流量控制,同时用于下一时刻的流量控制。也就是说,本申请实施例提供的流量控制方法是实时循环进行的,当前时刻执行结束,下一时刻继续执行,且当前时刻执行后若已对限流阈值进行调整,则下一时刻执行该方法时使用的限流阈值为上一时刻调整之后的。
根据本申请实施例的流量控制方法,根据本申请的技术方案,针对当前网络流量值大于限流阈值时,基于当前时间信息确定递增周期,并在该递增周期内未触发过限流事件时,以预设的方式增大限流阈值,来达到周期性地增加限流阈值,由于每个递增周期只允许一次增大限流阈值,所以可以通过使限流阈值渐进式增大,为资源的申请预留了一定的时间,使***能平稳地过渡到满负荷状态。此外,本方案也解决了现有技术中在流量突发时可能出现服务器异常或者宕机的问题,不仅可以保障***的安全,也可以提升用户体验。
可以理解,调整限流阈值的目的是为了对接收到的业务请求进行流量控制,接下来将基于限流处理过程提出了另一个实施例。
图2为本申请实施例所提供的另一种流量控制方法的流程图。如图2所示,在上述实施例的基础上,该方法还包括:
步骤205,基于增大后的限流阈值,对接收到的业务请求进行限流处理。
也就是说,可以根据增大后的限流阈值对接收到的业务请求进行限流处理。可用于对当前时刻的流量控制,同时用于下一时刻的流量控制。
需要说明的是,若该递增周期内已触发限流事件,则不再增大限流阈值,直接基于该限流阈值对接收到的业务请求进行限流处理。
可以理解,对于限流阈值并不能无限制的增加,任何一个***均存在一个满负荷的流量上限,超过这个上限后可能导致服务异常或宕机等。所以,在本申请的一些实施例中该步骤的实现方式还可以包括:
步骤205-1,获取预先配置的限流上限。
可以理解,为了保障***的正常运行,避免出现服务异常或宕机等问题,通常会预先配置限流上限,该限流上限是指***的满负荷的网络流量上限,超过这个上限后***会由于资源不足而无法正常运行。
步骤205-2,将限流上限与增大后的限流阈值进行比对。
也就是说,为了保证***的正常运行,需要将限流上限与增大后的限流阈值进行比对,以免由于增大后的限流阈值大于限流上限,在使用增大后的限流阈值进行限流处理时,造成导致服务异常或宕机等情况的发生。
步骤205-3,响应于增大后的限流阈值小于或等于限流上限,基于增大后的限流阈值对接收到的业务请求进行限流处理。
可以理解,增大后的限流阈值小于或等于限流上限,说明如果根据增大后的限流阈值对接收的业务请求进行限流处理,***资源可以满足限流后的网络流量,所以可以直接基于增大后的限流阈值对接收到的业务请求进行限流处理。
此外,针对增大后的限流阈值大于限流上限的情况,本申请实施例还可以包括以下步骤:
步骤206,响应于增大后的限流阈值大于限流上限,将增大后的限流阈值调整为限流上限,并基于限流上限对接收到的业务请求进行限流处理。
可以理解,在增大后的限流阈值大于限流上限时,若依然使用增大后的限流阈值对业务请求进行限流处理,则可能会使业务请求的网络流量值大于***可支撑的满负荷流量上限,造成***无法正常运行,出现服务异常或者宕机等问题。所以为了保障***稳定的运行,使业务请求流量值不高于***可支撑的最大流量上限,可以将增大后的限流阈值调整为限流上限,并基于限流上限对接收到的业务请求进行限流处理。
此外,在本申请的另一些实施例中,若限流阈值已增大到限流上限,则在当前时刻之后再执行本方法时,针对网络流量值大于限流阈值的情况,可以不再继续执行确定递增周期及增大限流阈值的步骤,直接使用该限流阈值对接收到的业务请求进行限流处理。
需要说明的是,图2中的步骤201~204与图1中的步骤101~104的实现方式一致,此处不再赘述。
根据本申请实施例提出的流量控制方法,通过将增大后的限流阈值与***可支撑的最大限流上限进行比对,在增大后的限流阈值小于或者等于限流上限时,基于增大后的限流阈值对接收到的业务请求进行限流处理,而在增大后的限流阈值大于限流上限时,将增大后的限流阈值调整为限流上限,并基于限流上限对接收到的业务请求进行限流处理,从而可以避免在增大限流阈值过程中,出现限流阈值超过***可支撑的最大限流上限的情况,进而保障***的安全运行,以防造成不必要的损失。
在现实场景中,客户端发起的业务请求并不是一直增加的状态,有可能随着时间业务请求量是波动变化的,也有可能是短时间的突增后又降低为较为平稳的状态。所以若在业务请求量增加时,增加了限流阈值,而业务请求量降低后依然使用增加后的限流阈值,显然会造成资源的浪费。接下来,本申请基于此问题,提出了又一个实施例。
图3是本申请实施例提出的又一种流量控制方法的流程图。在本申请实施例中,将流量控制方法分为了两部分:一部分为上述实施例中针对当前网络流量值大于限流阈值时,增大限流阈值;另一部分是对限流阈值的降低。本申请实施例中将针对限流阈值降低流程进行详细介绍。如图3所示,该方法在上述实施例的基础上,还包括:
步骤307,每隔N个递增周期,检测在N个递增周期内是否已触发限流事件;其中,N为正整数。
也就是说,可以预设定时检测的周期数N,每隔N个递增周期,检测在N个递增周期内是否对接收到的业务请求进行过限流处理。
在本申请实施例中,N可以预设为任意正整数,在实际应用时可根据实际情况来配置。比如,N=4,且每个递增周期为10s,则每隔40s对这4个递增周期内是否对业务请求有过限流处理进行检测。
步骤308,响应于在N个递增周期内未触发限流事件,基于预设的第二规则减小限流阈值。
可以理解,若N个递增周期内均未对接收到的业务请求进行过限流处理,说明当前限流阈值较大,限流作用不明显,可以适当地降低限流阈值,以免造成资源的浪费。
在本申请的一些实施例中,基于预设的第二规则减小限流阈值的实现方式可以为:基于预设的递减比例或者递减数量减小所述限流阈值。举例而言,假如限流阈值是M,预设的递减比例为3%,则减小后的限流阈值=M×(1-3%);若预设的递减数量为30,则减小后的限流阈值=M-30;其中,若预设的递减比例或者递减数量均存在,可以规定以递减比例或者递减数量之一为准。
需要说明的是,在本申请实施例中,流量控制方法中增大限流阈值的流程,与减小限流阈值的流程并行进行。也就是说,在接收到业务请求时,会实时根据网络流量值与限流阈值进行比较,并根据当前所处的递增周期的限流情况来确定是否增大限流阈值,同时也会每隔一段时间来确定是否减少限流阈值。其中,以上两个过程中使用的限流阈值均为当前时刻最新的限流阈值。
由于本申请实施例提供的流量控制方法是实时循环进行的,当前时刻执行结束,下一时刻继续执行,且当前时刻执行后若已对限流阈值进行调整,则下一时刻执行该方法时使用的限流阈值为上一时刻调整之后的。也就是说,若当前时刻减少限流阈值,则减少后的限流阈值可用于对当前时刻的流量控制,同时用于下一时刻的流量控制。
其中,图3中的步骤301~306与图2中的步骤201~206的实现方式一致,此处不再赘述。
根据本申请实施例提出的流量控制方法,引入了限流阈值的减小流程,通过每隔预设的N个递增周期,检测这N个递增周期中是否触发过限流事件,来确定是否减少限流阈值,从而可以避免由于限流阈值过大造成的资源浪费,也可以避免由于异常请求对***安全造成影响。此外,限流阈值增加流程与限流阈值减少流程并行进行,共同作用于调整限流阈值,使限流阈值达到一个动态平衡值,既可以保障***的安全运行,也可以节省资源消耗。
图4为本申请实施例所提供的又一种流量控制方法的流程图。如图4所示,在上述实施例的基础上,该方法还包括:
步骤409,基于减小后的限流阈值,对接收到的业务请求进行限流处理。
也就是说,可以根据减小后的限流阈值对接收到的业务请求进行限流处理。可用于对当前时刻的流量控制,同时用于下一时刻的流量控制。
通常情况下,客户端发起的业务请求量有一个正常的范围,若由于某一时间段的异常情况(业务请求量低于正常的范围),将限流阈值减少为低于该正常范围,可能会造成限流阈值频繁地增大和减少,不仅不利于业务请求的正常进行,也会由于频繁对阈值的调整增加计算消耗。所以,在本申请的一些实施例中,对接收到的业务请求进行限流处理的实现方式还可以包括以下步骤:
步骤409-1,获取预先配置的限流下限。
在本申请实施例中,可以根据正常情况下客户端发起的业务请求量,并权衡资源情况与限流阈值调整的计算量,预先配置一个限流下限,该限流下限低于限流上限,使该限流下限既不会因为过高造成资源浪费或者影响***的安全,也不会因为过低使限流阈值频繁地增大和减少而增加计算消耗。
步骤409-2,将限流下限与减小后的限流阈值进行比对。
也就是说,为了保证***的正常运行,需要将限流下限与减小后的限流阈值进行比对,以免由于减小后的限流阈值小于限流下限,使限流阈值频繁地增大和减少而增加计算消耗。
步骤490-3,响应于减小后的限流阈值大于或等于限流下限,基于减小后的限流阈值对接收到的业务请求进行限流处理。
可以理解,减小后的限流阈值大于或等于限流下限,说明使用减小后的限流阈值进行限流不会影响业务请求的正常进行,即减小后的限流阈值没有低于正常情况下的业务请求量,所以此时直接基于减小后的限流阈值对接收到的业务请求进行限流处理。
此外,针对减小后的限流阈值小于限流下限的情况,本申请实施例还可以包括:
步骤410,响应于减小后的限流阈值小于限流下限,将减小后的限流阈值调整为限流下限,基于限流下限对接收到的业务请求进行限流处理。
可以理解,在减小后的限流阈值小于限流下限时,若依然基于减小后的限流阈值对业务请求进行限流处理,则可能会使部分业务请求无法正常进行,也可能会造成限流阈值频繁地增大和减少,从而增加计算消耗。为了保障***稳定的运行,若当前网络流量值低于限流下限,则不需要对接收到的业务请求进行限流,所以在减小后的限流阈值小于限流下限时,可以将减小后的限流阈值调整为限流下限,基于限流下限对接收到的业务请求进行限流处理。
此外,在本申请的另一些实施例中,若限流阈值已为限流下限,则在当前时刻之后再执行本方法时,可以停止减小限流阈值的流程,若限流阈值又增大为大于限流下限,则再执行减小限流阈值的流程,以节省计算量。
需要说明的是,在本申请实施例中,图4中的步骤401~408与图3中的步骤301~308的实现方式一致,此处不再赘述。
根据本申请实施例的流量控制方法,通过将减小后的限流阈值与预设的限流下限进行比对,在减小后的限流阈值大于或等于限流下限时,基于减小后的限流阈值对接收到的业务请求进行限流处理。而在减小后的限流阈值小于限流下限时,将减小后的限流阈值调整为限流下限,并基于限流下限对接收到的业务请求进行限流处理,从而既可以避免由于限流阈值过高造成资源浪费或者影响***的安全,也可以避免由于限流阈值过低使限流阈值频繁地增大和减少而造成计算消耗增加。
为了实现上述实施例,本申请提供了一种流量控制装置。
图5是本申请实施例所提供的一种流量控制装置的结构框图。如图5所示,该装置包括:
第一检测模块501,用于响应于客户端发起的业务请求,检测当前的网络流量值;
比对模块502,用于将所述当前的网络流量值与限流阈值进行比对;
确定模块503,用于响应于所述当前的网络流量值大于限流阈值,确定与当前时间信息对应的递增周期;其中,所述当前时间信息为所述当前的网络流量值大于所述限流阈值时所对应的时间信息;
增大阈值模块504,用于响应于在所述递增周期内未触发限流事件,基于所述预设的第一规则增大所述限流阈值。
在本申请的一些实施例中,增大阈值模块504具体用于:
基于预设的递增比例或者递增数量,增大所述限流阈值。
在本申请的一些实施例中,该装置还包括:
第一限流模块505,用于基于增大后的限流阈值,对接收到的业务请求进行限流处理。
其中,第一限流模块505具体用于:
获取预先配置的限流上限;
将所述限流上限与增大后的限流阈值进行比对;
响应于所述增大后的限流阈值小于或等于所述限流上限,基于所述增大后的限流阈值对接收到的业务请求进行限流处理。
在本申请的另一些实施例中,该装置还包括:
第二限流模块506,用于响应于所述增大后的限流阈值大于所述限流上限,将所述增大后的限流阈值调整为所述限流上限,并基于所述限流上限对接收到的业务请求进行限流处理。
可选地,在本申请实施例中,该装置还包括:
第五限流模块507,用于响应于在所述递增周期内已触发限流事件,基于所述限流阈值对接收到的业务请求进行限流处理。
根据本申请实施例的流量控制装置,根据本申请的技术方案,针对当前网络流量值大于限流阈值时,基于当前时间信息确定递增周期,并在该递增周期内未触发过限流事件时,以预设的方式增大限流阈值,来达到周期性地增加限流阈值,由于每个递增周期只允许一次增大限流阈值,所以可以通过使限流阈值渐进式增大,为资源的申请预留了一定的时间,使***能平稳地过渡到满负荷状态。此外,本方案也解决了现有技术中在流量突发时可能出现服务器异常或者宕机的问题,不仅可以保障***的安全,也可以提升用户体验。
在现实场景中,客户端发起的业务请求并不是一直增加的状态,有可能随着时间业务请求量是波动变化的,也有可能是短时间的突增后又降低为较为平稳的状态。所以若在业务请求量增加时,增加了限流阈值,而业务请求量降低后依然使用增加后的限流阈值,显然会造成资源的浪费。接下来,本申请基于此问题,提出了又一个实施例。
图6是本申请实施例所提供的一种流量控制装置的结构框图。如图6所示,在上述实施例的基础上,该装置包括:
第二检测模块608,用于每隔N个递增周期,检测在所述N个递增周期内是否已触发限流事件;其中,N为正整数;
减小阈值模块609,用于响应于在所述N个递增周期内未触发限流事件,基于预设的第二规则减小所述限流阈值。
其中,减小阈值模块609具体用于:
基于预设的递减比例或者递减数量减小所述限流阈值。
在本申请的一些实施例中,该装置还包括:
第三限流模块610,用于基于减小后的限流阈值,对接收到的业务请求进行限流处理
进一步地,在本申请的一些实施例中,第三限流模块610具体用于:
获取预先配置的限流下限;
将所述限流下限与减小后的限流阈值进行比对;
响应于所述减小后的限流阈值大于或等于所述限流下限,基于所述减小后的限流阈值对接收到的业务请求进行限流处理。
此外,在本申请的一些实施例中,该装置还包括:
第四限流模块611,用于响应于所述减小后的限流阈值小于所述限流下限,将所述减小后的限流阈值调整为所述限流下限,基于所述限流下限对接收到的业务请求进行限流处理。
根据本申请实施例提出的流量控制装置,引入了限流阈值的减小流程,通过每隔预设的N个递增周期,检测这N个递增周期中是否触发过限流事件,来确定是否减少限流阈值,从而可以避免由于限流阈值过大造成的资源浪费,也可以避免由于异常请求对***安全造成影响。此外,限流阈值增加流程与限流阈值减少流程并行进行,共同作用于调整限流阈值,使限流阈值达到一个动态平衡值,既可以保障***的安全运行,也可以节省资源消耗。
基于本申请的实施例,本申请还提供了一种电子设备,至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行前述任一项流量控制方法。
基于本申请的实施例,本申请还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行根据本申请实施例提供的前述任一项的流量控制方法。
图7示出了可以用来实施本申请的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如流量控制方法。例如,在一些实施例中,流量控制方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的流量控制方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行流量控制方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式***的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (24)

1.一种流量控制方法,其特征在于,包括:
响应于客户端发起的业务请求,检测当前的网络流量值;
将所述当前的网络流量值与限流阈值进行比对;
响应于所述当前的网络流量值大于限流阈值,确定与当前时间信息对应的递增周期;其中,所述当前时间信息为所述当前的网络流量值大于所述限流阈值时所对应的时间信息;
响应于在所述递增周期内未触发限流事件,基于所述预设的第一规则增大所述限流阈值。
2.根据权利要求1所述的方法,其特征在于,所述基于所述预设的第一规则增大所述限流阈值,包括:
基于预设的递增比例或者递增数量,增大所述限流阈值。
3.根据权利要求1所述的方法,其特征在于,还包括:
基于增大后的限流阈值,对接收到的业务请求进行限流处理。
4.根据权利要求3所述的方法,其特征在于,所述基于增大后的限流阈值,对接收到的业务请求进行限流处理,包括:
获取预先配置的限流上限;
将所述限流上限与增大后的限流阈值进行比对;
响应于所述增大后的限流阈值小于或等于所述限流上限,基于所述增大后的限流阈值对接收到的业务请求进行限流处理。
5.根据权利要求4所述的方法,其特征在于,还包括:
响应于所述增大后的限流阈值大于所述限流上限,将所述增大后的限流阈值调整为所述限流上限,并基于所述限流上限对接收到的业务请求进行限流处理。
6.根据权利要求1所述的方法,其特征在于,还包括:
每隔N个递增周期,检测在所述N个递增周期内是否已触发限流事件;其中,N为正整数;
响应于在所述N个递增周期内未触发限流事件,基于预设的第二规则减小所述限流阈值。
7.根据权利要求6所述的方法,其特征在于,所述基于预设的第二规则减小所述限流阈值,包括:
基于预设的递减比例或者递减数量减小所述限流阈值。
8.根据权利要求6所述的方法,其特征在于,还包括:
基于减小后的限流阈值,对接收到的业务请求进行限流处理。
9.根据权利要求8所述的方法,其特征在于,所述基于减小后的限流阈值,对接收到的业务请求进行限流处理,包括:
获取预先配置的限流下限;
将所述限流下限与减小后的限流阈值进行比对;
响应于所述减小后的限流阈值大于或等于所述限流下限,基于所述减小后的限流阈值对接收到的业务请求进行限流处理。
10.根据权利要求9所述的方法,其特征在于,还包括:
响应于所述减小后的限流阈值小于所述限流下限,将所述减小后的限流阈值调整为所述限流下限,基于所述限流下限对接收到的业务请求进行限流处理。
11.根据权利要求1所述的方法,其特征在于,还包括:
响应于在所述递增周期内已触发限流事件,基于所述限流阈值对接收到的业务请求进行限流处理。
12.一种流量控制装置,其特征在于,包括:
第一检测模块,用于响应于客户端发起的业务请求,检测当前的网络流量值;
比对模块,用于将所述当前的网络流量值与限流阈值进行比对;
确定模块,用于响应于所述当前的网络流量值大于限流阈值,确定与当前时间信息对应的递增周期;其中,所述当前时间信息为所述当前的网络流量值大于所述限流阈值时所对应的时间信息;
增大阈值模块,用于响应于在所述递增周期内未触发限流事件,基于所述预设的第一规则增大所述限流阈值。
13.根据权利要求12所述的装置,其特征在于,所述增大阈值模块具体用于:
基于预设的递增比例或者递增数量,增大所述限流阈值。
14.根据权利要求12所述的装置,其特征在于,还包括:
第一限流模块,用于基于增大后的限流阈值,对接收到的业务请求进行限流处理。
15.根据权利要求14所述的装置,其特征在于,所述第一限流模块具体用于:
获取预先配置的限流上限;
将所述限流上限与增大后的限流阈值进行比对;
响应于所述增大后的限流阈值小于或等于所述限流上限,基于所述增大后的限流阈值对接收到的业务请求进行限流处理。
16.根据权利要求15所述的装置,其特征在于,还包括:
第二限流模块,用于响应于所述增大后的限流阈值大于所述限流上限,将所述增大后的限流阈值调整为所述限流上限,并基于所述限流上限对接收到的业务请求进行限流处理。
17.根据权利要求12所述的装置,其特征在于,还包括:
第二检测模块,用于每隔N个递增周期,检测在所述N个递增周期内是否已触发限流事件;其中,N为正整数;
减小阈值模块,用于响应于在所述N个递增周期内未触发限流事件,基于预设的第二规则减小所述限流阈值。
18.根据权利要求17所述的装置,其特征在于,所述减小阈值模块具体用于:
基于预设的递减比例或者递减数量减小所述限流阈值。
19.根据权利要求17所述的装置,其特征在于,还包括:
第三限流模块,用于基于减小后的限流阈值,对接收到的业务请求进行限流处理
20.根据权利要求19所述的装置,其特征在于,所述第二限流模块具体用于:
获取预先配置的限流下限;
将所述限流下限与减小后的限流阈值进行比对;
响应于所述减小后的限流阈值大于或等于所述限流下限,基于所述减小后的限流阈值对接收到的业务请求进行限流处理。
21.根据权利要求20所述的装置,其特征在于,还包括:
第四限流模块,用于响应于所述减小后的限流阈值小于所述限流下限,将所述减小后的限流阈值调整为所述限流下限,基于所述限流下限对接收到的业务请求进行限流处理。
22.根据权利要求12所述的装置,其特征在于,还包括:
第五限流模块,用于响应于在所述递增周期内已触发限流事件,基于所述限流阈值对接收到的业务请求进行限流处理。
23.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至11中任一项所述的方法。
24.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1至11中任一项所述的方法。
CN202111353259.0A 2021-11-15 2021-11-15 流量控制方法、装置、电子设备及存储介质 Pending CN114124820A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111353259.0A CN114124820A (zh) 2021-11-15 2021-11-15 流量控制方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111353259.0A CN114124820A (zh) 2021-11-15 2021-11-15 流量控制方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114124820A true CN114124820A (zh) 2022-03-01

Family

ID=80396649

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111353259.0A Pending CN114124820A (zh) 2021-11-15 2021-11-15 流量控制方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114124820A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115914124A (zh) * 2022-12-09 2023-04-04 北京百度网讯科技有限公司 一种自适应的多维度流量限速方法、装置、设备及介质
CN116094979A (zh) * 2022-12-23 2023-05-09 华能信息技术有限公司 一种策略路由管理方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080267067A1 (en) * 2007-04-30 2008-10-30 Gabriel Salazar Controlling the flow of data updates between a receiving station and a sending station
US20100002580A1 (en) * 2008-07-07 2010-01-07 Verizon Corporate Services Group Inc. Method and system for providing auto-bandwidth adjustment
WO2012155673A1 (zh) * 2011-06-30 2012-11-22 中兴通讯股份有限公司 一种业务流限速值动态调整的方法及装置
CN108491234A (zh) * 2018-03-19 2018-09-04 深圳乐信软件技术有限公司 一种实时流量控制方法、装置、设备及存储介质
CN109104745A (zh) * 2017-06-21 2018-12-28 中兴通讯股份有限公司 基于空口质量的流量控制方法、装置和计算机设备
US20190182168A1 (en) * 2017-12-11 2019-06-13 International Business Machines Corporation Dynamic throttling thresholds
CN110120973A (zh) * 2019-04-28 2019-08-13 华为技术有限公司 一种请求控制方法、相关设备及计算机存储介质
CN110278157A (zh) * 2018-03-14 2019-09-24 华为技术有限公司 拥塞控制方法及网络设备
CN111698098A (zh) * 2019-03-15 2020-09-22 北京京东尚科信息技术有限公司 通信方法、装置和计算机可读存储介质
CN112118188A (zh) * 2020-08-25 2020-12-22 北京五八信息技术有限公司 一种流量限速方法、装置、电子设备及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080267067A1 (en) * 2007-04-30 2008-10-30 Gabriel Salazar Controlling the flow of data updates between a receiving station and a sending station
US20100002580A1 (en) * 2008-07-07 2010-01-07 Verizon Corporate Services Group Inc. Method and system for providing auto-bandwidth adjustment
WO2012155673A1 (zh) * 2011-06-30 2012-11-22 中兴通讯股份有限公司 一种业务流限速值动态调整的方法及装置
CN109104745A (zh) * 2017-06-21 2018-12-28 中兴通讯股份有限公司 基于空口质量的流量控制方法、装置和计算机设备
US20190182168A1 (en) * 2017-12-11 2019-06-13 International Business Machines Corporation Dynamic throttling thresholds
CN110278157A (zh) * 2018-03-14 2019-09-24 华为技术有限公司 拥塞控制方法及网络设备
CN108491234A (zh) * 2018-03-19 2018-09-04 深圳乐信软件技术有限公司 一种实时流量控制方法、装置、设备及存储介质
CN111698098A (zh) * 2019-03-15 2020-09-22 北京京东尚科信息技术有限公司 通信方法、装置和计算机可读存储介质
CN110120973A (zh) * 2019-04-28 2019-08-13 华为技术有限公司 一种请求控制方法、相关设备及计算机存储介质
CN112118188A (zh) * 2020-08-25 2020-12-22 北京五八信息技术有限公司 一种流量限速方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115914124A (zh) * 2022-12-09 2023-04-04 北京百度网讯科技有限公司 一种自适应的多维度流量限速方法、装置、设备及介质
CN116094979A (zh) * 2022-12-23 2023-05-09 华能信息技术有限公司 一种策略路由管理方法

Similar Documents

Publication Publication Date Title
CN114124820A (zh) 流量控制方法、装置、电子设备及存储介质
CN112559182A (zh) 资源分配方法、装置、设备及存储介质
CN112511456A (zh) 流量控制方法、装置、设备、存储介质和计算机程序产品
CN110046083B (zh) 自动化灰度发布方法和装置
WO2016172848A1 (zh) 一种调整云计算中虚拟资源的方法及装置
CN113114504B (zh) 用于分配资源的方法、装置、设备、介质和产品
CN114448989B (zh) 调整消息分发的方法、装置、电子设备、存储介质及产品
CN114327918B (zh) 调整资源量的方法、装置、电子设备和存储介质
CN114064284A (zh) 云服务器资源配置方法、装置、电子设备和介质
CN113986497B (zh) 基于多租户技术的队列调度方法、装置及***
CN113468021B (zh) 监控性能数据的方法、装置、设备以及存储介质
CN112887407B (zh) 用于分布式集群的作业流量控制方法和装置
CN107092551A (zh) 一种服务器***性能优化方法及装置
CN116661960A (zh) 一种批量任务处理方法、装置、设备以及存储介质
CN113556394B (zh) 云产品网络用量处理方法、装置、设备、存储介质及产品
CN115190180A (zh) 在网络资源请求骤增时的网络资源请求调度方法和装置
CN114139605A (zh) 分布式的模型训练方法、***、设备以及存储介质
CN114265692A (zh) 服务调度方法、装置、设备以及存储介质
CN114051057A (zh) 云设备排队时长的确定方法、装置、电子设备和介质
CN113360736A (zh) 互联网数据的抓取方法和装置
CN112965836A (zh) 服务控制方法、装置、电子设备及可读存储介质
CN112559183A (zh) 计算资源管理方法、装置、电子设备及存储介质
CN115967677A (zh) 服务调用的流量控制方法、装置、设备及存储介质
CN114082174A (zh) 一种云游戏的控制方法、装置、电子设备和存储介质
CN118034930A (zh) 一种api接口管理方法、装置、服务器和存储介质

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