一种数据传输动态限流方法、系统、装置及可读存储介质与流程

文档序号:19835904发布日期:2020-02-04 13:00阅读:221来源:国知局

本发明涉及通信工程领域,特别涉及一种数据传输动态限流方法、系统、装置及计算机可读存储介质。



背景技术:

在网络数据传输的过程中,需要对api接口层进行限流,如果不考虑限流,那么在遇到持续性高并发数据访问时,会导致接口层拥堵,轻则响应缓慢,重则系统宕机,整个业务系统瘫痪。这会给公司带来巨大的经济损失与客户流失。面对这种情况,我们必须通过一定的手段对用户请求进行限流,来保证系统的稳定性,防止因流量暴增而导致的系统缓慢或者系统宕机。

所以,如何在流量起伏不定的网络环境中,在充分利用服务器的处理性能与数据传输能力情况下,动态高效的对数据传输进行限流,成为了在高并发系统开发中必须要考虑的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种数据传输动态限流方法、系统、装置及计算机可读存储介质,动态高效的对数据传输进行限流。其具体方案如下:

一种数据传输动态限流方法,包括:

利用数据接收设备的额定处理带宽设定针对第一类数据流限速的第一限速器的第一额定带宽;

利用所述数据接收设备的最大处理带宽设定所述第一限速器的最大转发带宽;

利用所述额定处理带宽与所述第一限速器的当前使用带宽的差值盈余带宽作为针对第二类数据流限速的第二限速器的第二额定带宽,以使所述第二限速器的第二额定带宽跟随所述第一限速器的当前使用带宽变动。

可选的,所述利用数据接收设备的额定处理带宽设定针对第一类数据流限速的第一限速器的第一额定带宽的过程,包括:

利用数据接收设备的额定处理带宽和每个令牌所对应的数据量,设定针对所述第一类数据流的令牌桶限速器的令牌放置速率。

可选的,所述利用所述数据接收设备的最大处理带宽设定所述第一限速器的最大转发带宽的过程,包括:

利用所述数据接收设备的最大处理带宽和每个令牌所对应的数据量,设定所述令牌桶限速器的令牌容量。

可选的,所述利用所述额定处理带宽与所述第一限速器的当前使用带宽的差值盈余带宽作为针对第二类数据流限速的第二限速器的第二额定带宽的过程,包括:

利用所述额定处理带宽与所述令牌桶限速器的当前使用带宽的差值盈余带宽和每个令牌所对应的数据量,设定针对所述第二类数据流的令牌限速器的令牌生成速率。

本发明还公开了一种数据传输动态限流系统,包括:

第一额定带宽设定模块,用于利用数据接收设备的额定处理带宽设定针对第一类数据流限速的第一限速器的第一额定带宽;

最大带宽设定模块,用于利用所述数据接收设备的最大处理带宽设定所述第一限速器的最大转发带宽;

第二额定带宽设定模块,用于利用所述额定处理带宽与所述第一限速器的当前使用带宽的差值盈余带宽作为针对第二类数据流限速的第二限速器的第二额定带宽,以使所述第二限速器的第二额定带宽跟随所述第一限速器的当前使用带宽变动。

可选的,所述第一额定带宽设定模块,具体用于利用数据接收设备的额定处理带宽和每个令牌所对应的数据量,设定针对所述第一类数据流的令牌桶限速器的令牌放置速率。

可选的,所述最大带宽设定模块,具体用于利用所述数据接收设备的最大处理带宽和每个令牌所对应的数据量,设定所述令牌桶限速器的令牌容量。

可选的,所述第二额定带宽设定模块,具体用于利用所述额定处理带宽与所述令牌桶限速器的当前使用带宽的差值盈余带宽和每个令牌所对应的数据量,设定针对所述第二类数据流的令牌限速器的令牌生成速率。

本发明还公开了一种数据传输动态限流装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如前述的数据传输动态限流方法。

本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的数据传输动态限流方法。

本发明中,数据传输动态限流方法,包括:利用数据接收设备的额定处理带宽设定针对第一类数据流限速的第一限速器的第一额定带宽;利用数据接收设备的最大处理带宽设定第一限速器的最大转发带宽;利用额定处理带宽与第一限速器的当前使用带宽的差值盈余带宽作为针对第二类数据流限速的第二限速器的第二额定带宽,以使第二限速器的第二额定带宽跟随第一限速器的当前使用带宽变动。

本发明利用数据接收设备的额定处理带宽为针对第一类数据流限速的第一限速器设定第一额定带宽,利用数据接收设备的最大处理带宽设定第一限速器的最大转发带宽,确保第一限速器的带宽上限与数据接收设备一致,确保第一类数据流能够享受到最多的带宽资源,同时,设置最大转发带宽还使第一限速器具备了承受第一类数据流瞬时超载的能力,而针对第二类数据流限速的第二限速器的第二额定带宽则为数据接收设备的额定处理带宽与第一限速器的当前使用带宽的差值,使第二限速器所能够使用的带宽随着第一类数据流使用带宽的情况而变,实现对第二类数据流的动态限流,确保第一类数据流的优先传输。

附图说明

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

图1为本发明实施例公开的一种数据传输动态限流方法流程示意图;

图2为本发明实施例公开的另一种数据传输动态限流方法流程示意图;

图3为本发明实施例公开的一种数据传输动态限流系统结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种数据传输动态限流方法,参见图1所示,该方法包括:

s11:利用数据接收设备的额定处理带宽设定针对第一类数据流限速的第一限速器的第一额定带宽。

具体的,第一类数据流可以作为数据接收设备所要接收的主要数据,第一类数据流的优先级高于第二类数据流,为保证第一类数据流能够尽快的传输至数据接收设备中,针对第一类数据流进行传输限速的第一限速器的第一额定带宽尽可能设定为最大值,根据数据接收设备的额定处理带宽可以设定第一限速器的第一额定带宽等于数据接收设备的额定处理带宽,使第一限速器的第一额定带宽达到最大值,以确保第一类数据流能够快速的有效的进入数据接收设备。

其中,数据接收设备可以为服务器、客户端或网络交换机等通信设备,第一类数据流可以为核心业务的数据流,第二类数据流可以为非核心业务的数据流,当然,第一类数据流和第二类数据流还可以对应多层次和级别的数据流,不局限于两类数据流,均满足本发明实施例的创造精神。

s12:利用数据接收设备的最大处理带宽设定第一限速器的最大转发带宽。

具体的,为了应对突发的数据流瞬时超载的情况第一限速器在第一额定带宽的基础上,还设置有最大转发带宽,当单位时间内第一类数据流超过第一限速器的第一额定带宽,为了确保此种情况第一类数据流仍能够通过第一限速器达到数据接收设备,可以设置第一限速器的最大转发带宽等于数据接收设备的最大处理带宽,数据接收设备的最大处理带宽大于数据接收设备的额定处理带宽,数据接收设备和第一限速器能够在一定时间内,应对第一类数据流超过第一额定带宽的情况,例如,可以在一秒内承受超过第一额定带宽小于等于最大处理带宽的第一类数据流。

s13:利用额定处理带宽与第一限速器的当前使用带宽的差值盈余带宽作为针对第二类数据流限速的第二限速器的第二额定带宽,以使第二限速器的第二额定带宽跟随第一限速器的当前使用带宽变动。

具体的,数据接收设备的处理带宽总量是一定的,为确保数据接收设备能够及时有效的接收第一类数据流,设定对第二类数据流进行限速的第二限速器的第二额定带宽为数据接收设备的额定处理带宽与第一限速器的当前使用带宽的差值即盈余带宽作为第二限速器的第二额定带宽,使第二限速器的第二额定带宽作为一个动态值,跟随第一限速器当前使用的带宽量变化,实现动态调整,当第一类数据流的数据量大,占用大量带宽时,第二额定带宽将会随之降低,当第一类数据流的数据量小,占用少量带宽时,第二额定带宽将会随之升高,例如,数据接收设备的额定处理带宽为m,第一限速器当前使用带宽为p,第二额定带宽为v2,其中,第二额定带宽为v2即为v2=m-p。

具体的,第二额定带宽随着第一限速器的当前使用带宽变化,确保了在数据传输时,整个数据接收设备的带宽以第一类数据流为基础,确保第一类数据流带宽能够达到最大值而不受第二类数据流的影响,而第二类数据流的传输带宽则受到第一类数据流当前所使用的带宽的影响,确保数据接收设备的带宽优先为第一类数据流服务,同时,在第一限速器的当前使用带宽小的时候,数据接收设备的剩余带宽将提供给第二限速器,使第二限速器的第二额定带宽升高,确保了数据接收设备的全部额定处理带宽能够有效使用,减少带宽浪费的情况。

可见,本发明实施例利用数据接收设备的额定处理带宽为针对第一类数据流限速的第一限速器设定第一额定带宽,利用数据接收设备的最大处理带宽设定第一限速器的最大转发带宽,确保第一限速器的带宽上限与数据接收设备一致,确保第一类数据流能够享受到最多的带宽资源,同时,设置最大转发带宽还使第一限速器具备了承受第一类数据流瞬时超载的能力,而针对第二类数据流限速的第二限速器的第二额定带宽则为数据接收设备的额定处理带宽与第一限速器的当前使用带宽的差值,使第二限速器所能够使用的带宽随着第一类数据流使用带宽的情况而变,实现对第二类数据流的动态限流,确保第一类数据流的优先传输。

本发明实施例公开了一种具体的数据传输动态限流方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图2所示,具体的:

s21:利用数据接收设备的额定处理带宽和每个令牌所对应的数据量,设定针对第一类数据流限速的令牌桶限速器的令牌放置速率。

具体的,第一限速器可以为令牌桶限速器,当第一限速器为令牌桶限速器时,第一限速器的第一额定带宽除以令牌桶限速器每个令牌所对应的可转发的数据量,得到令牌桶限速器的令牌放置速率。

其中,每个令牌所对应的可转发的数据量为预先设定的,可以根据实际应用需求进行设定。

s22:利用数据接收设备的最大处理带宽和每个令牌所对应的数据量,设定令牌桶限速器的令牌容量。

具体的,因令牌桶限速器可以预先存储一定数量的令牌,因此,即使第一类数据流瞬时超载,单位时间内数据量所需的令牌大于令牌桶限速器的令牌放置速率,令牌桶中仍有剩余的令牌可以为多出的数据分配令牌,实现超载传输,而超载传输的上限为数据接收设备的最大处理带宽,所以设定令牌桶限速器的令牌容量为最大处理带宽除以每个令牌所对应的数据量的商,确保令牌桶限速器能够承载数据流的瞬时超载现象。

s23:利用额定处理带宽与令牌桶限速器的当前使用带宽的差值盈余带宽和每个令牌所对应的数据量,设定针对第二类数据流限速的令牌限速器的令牌生成速率。

具体的,为了节省运算资源,第二类数据流的第二限速器不选择令牌桶限速器,而是采用令牌限速器,不具备应对数据流瞬时超载的能力,所以令牌限速器的令牌生成速率就相当于第二限速器的第二额定带宽除以每个令牌所对应的数据量的商,一但第二类数据流的数据量所需的令牌数量超过令牌生成速率,则会产生数据堵塞;通过动态调整令牌限速器的令牌生成速率,实现对第二类数据流的自动动态限流,确保第一类数据流有足够的带宽使用。

进一步的,根据实际应用需要也可以设置第二限速器为令牌桶限速器,此时,令牌桶的容量可以根据实际应用需求进行设定。

相应的,本发明实施例还公开了一种数据传输动态限流系统,参见图3所示,该系统包括:

第一额定带宽设定模块1,用于利用数据接收设备的额定处理带宽设定针对第一类数据流限速的第一限速器的第一额定带宽;

最大带宽设定模块2,用于利用数据接收设备的最大处理带宽设定第一限速器的最大转发带宽;

第二额定带宽设定模块3,用于利用额定处理带宽与第一限速器的当前使用带宽的差值盈余带宽作为针对第二类数据流限速的第二限速器的第二额定带宽,以使第二限速器的第二额定带宽跟随第一限速器的当前使用带宽变动。

具体的,上述第一额定带宽设定模块1,具体用于利用数据接收设备的额定处理带宽和每个令牌所对应的数据量,设定针对第一类数据流的令牌桶限速器的令牌放置速率。

具体的,上述最大带宽设定模块2,具体用于利用数据接收设备的最大处理带宽和每个令牌所对应的数据量,设定令牌桶限速器的令牌容量。

具体的,上述第二额定带宽设定模块3,具体用于利用额定处理带宽与令牌桶限速器的当前使用带宽的差值盈余带宽和每个令牌所对应的数据量,设定针对第二类数据流的令牌限速器的令牌生成速率。

此外,本发明实施例还公开了一种数据传输动态限流装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序以实现如前述的数据传输动态限流方法,具体的,该方法包括:

利用数据接收设备的额定处理带宽设定针对第一类数据流限速的第一限速器的第一额定带宽;

利用数据接收设备的最大处理带宽设定第一限速器的最大转发带宽;

利用额定处理带宽与第一限速器的当前使用带宽的差值盈余带宽作为针对第二类数据流限速的第二限速器的第二额定带宽,以使第二限速器的第二额定带宽跟随第一限速器的当前使用带宽变动。

具体的,上述利用数据接收设备的额定处理带宽设定针对第一类数据流限速的第一限速器的第一额定带宽的过程,包括:

利用数据接收设备的额定处理带宽和每个令牌所对应的数据量,设定针对第一类数据流的令牌桶限速器的令牌放置速率。

具体的,上述利用数据接收设备的最大处理带宽设定第一限速器的最大转发带宽的过程,包括:

利用数据接收设备的最大处理带宽和每个令牌所对应的数据量,设定令牌桶限速器的令牌容量。

具体的,上述利用额定处理带宽与第一限速器的当前使用带宽的差值盈余带宽作为针对第二类数据流限速的第二限速器的第二额定带宽的过程,包括:

利用额定处理带宽与令牌桶限速器的当前使用带宽的差值盈余带宽和每个令牌所对应的数据量,设定针对第二类数据流的令牌限速器的令牌生成速率。

另外,本发明实施例还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述的数据传输动态限流方法,具体的,该方法包括:

利用数据接收设备的额定处理带宽设定针对第一类数据流限速的第一限速器的第一额定带宽;

利用数据接收设备的最大处理带宽设定第一限速器的最大转发带宽;

利用额定处理带宽与第一限速器的当前使用带宽的差值盈余带宽作为针对第二类数据流限速的第二限速器的第二额定带宽,以使第二限速器的第二额定带宽跟随第一限速器的当前使用带宽变动。

具体的,上述利用数据接收设备的额定处理带宽设定针对第一类数据流限速的第一限速器的第一额定带宽的过程,包括:

利用数据接收设备的额定处理带宽和每个令牌所对应的数据量,设定针对第一类数据流的令牌桶限速器的令牌放置速率。

具体的,上述利用数据接收设备的最大处理带宽设定第一限速器的最大转发带宽的过程,包括:

利用数据接收设备的最大处理带宽和每个令牌所对应的数据量,设定令牌桶限速器的令牌容量。

具体的,上述利用额定处理带宽与第一限速器的当前使用带宽的差值盈余带宽作为针对第二类数据流限速的第二限速器的第二额定带宽的过程,包括:

利用额定处理带宽与令牌桶限速器的当前使用带宽的差值盈余带宽和每个令牌所对应的数据量,设定针对第二类数据流的令牌限速器的令牌生成速率。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

以上对本发明所提供的技术内容进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!