[发明专利]一种基于时间轮的流量控制方法在审
申请号: | 202011122241.5 | 申请日: | 2020-10-20 |
公开(公告)号: | CN112015761A | 公开(公告)日: | 2020-12-01 |
发明(设计)人: | 时春;佘秋野;王凤雷 | 申请(专利权)人: | 江苏未来智慧信息科技有限公司 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453 |
代理公司: | 常州佰业腾飞专利代理事务所(普通合伙) 32231 | 代理人: | 姜晓钰 |
地址: | 211000 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 时间 流量 控制 方法 | ||
本发明公开了一种基于时间轮的流量控制方法,属于计算机领域,包括根据时间窗口的长度初始化一个定长数组,时间窗口中的每一个时间节点对应数组的一个元素。定时器负责实时的将对应时间节点的流量数据写入对应的数组元素。对定长数组求和,即可得到时间窗口的流量总数解决了传统的主流算法的性能损耗的技术问题,本发明根据时间的推进循环存放流量数据,规避了新增和删除的操作,本发明对于时间窗口过长或者窗口内数据量太大的场景,得益于时间轮的环形结构,规避了由删除过期数据引发的性能损耗。
技术领域
本发明属于计算机技术领域,涉及一种基于时间轮的流量控制方法。
背景技术
在数据高速查询及并发访问的流量控制方面,目前有不少的解决方案,能够实现对数据交互的流量的管控。主流的方式是借助队列来构建一个时间窗口,新的数据在队列头添加;同时起一个线程,不断的询问队尾的数据是否过期,如果过期则丢掉。然而当窗口中的数据量过大时,删除过期数据以及增加新数据往往是以时间复杂度为代价的。另有一种改良的算法,是基于队列的轮询删除方式,周期轮询队列尾部,一旦发现过期,则删除队列。因为该方法依然无法避免轮询,故无法从根本上解决增删数据时性能损耗的问题。
发明内容
本发明的目的是提供一种基于时间轮的流量控制方法,解决了传统的主流算法的性能损耗的技术问题。
为实现上述目的,本发明采用如下技术方案:
一种基于时间轮的流量控制方法,包括以下步骤:
步骤1:数据存储检索系统,数据存储检索包括数据采集模块、时间窗口模块和数据存储模块;
数据采集模块用于收集流量数据,并将流量数据写数数据存储模块;
时间窗口模块用于建立时间窗口,并根据时间窗口控制流量数据的存储;
数据存储模块用于存储流量数据;
步骤2:在时间窗口模块中建立一个时间窗口,设定时间窗口的长度,时间窗口由数个时间节点interval构成;
步骤3:根据时间窗口的长度初始化一个定长数组,用于作为流量控制的时间轮,该定长数组设于数据存储模块中;
定长数组包括数个元素,每一个元素对应一个时间节点interval,所述元素用于存放流量数据;
步骤4:在时间窗口模块中设定一个定时器,并根据以下流程将流量数据写数定长数组中:
步骤S1:根据时间顺序设定时间窗口中的每一个时间节点interval的编号;
步骤S2:设定一个写数指针,初始化写数指针为0;
步骤S3:获取流量数据,根据时间节点interval的编号,选择对应的元素存放流量数据;
步骤S4:写数指针加1,判断末尾的时间节点interval的编号是否小于写数指针:是,则执行步骤S6;否,则执行步骤S5;
步骤S5:将写数指针回归到0,执行步骤S7;
步骤S6:执行步骤S3;
步骤S7:再次获取到新的流量数据后,将新的流量数据覆盖原有的流量数据,写数指针+1,执行步骤S2。
优选的,所有所述时间节点interval的长度均相同。
优选的,在执行步骤4时,对所述定长数组中的所有元素进行求和,得到的结果作为所述时间窗口内的流量总数,根据流量总数判断该时间窗口的流量是否在控制阈值之内。
优选的,在执行步骤S5时,写数指针回归到0是将写数指针加1后,再对所述定长数组的长度取余数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏未来智慧信息科技有限公司,未经江苏未来智慧信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011122241.5/2.html,转载请声明来源钻瓜专利网。