[发明专利]一种基于环形链表的限流方法和装置在审
申请号: | 202110050553.8 | 申请日: | 2021-01-14 |
公开(公告)号: | CN113779019A | 公开(公告)日: | 2021-12-10 |
发明(设计)人: | 姜振飞 | 申请(专利权)人: | 北京沃东天骏信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F11/30;G06F9/50 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 李召春;王志远 |
地址: | 100176 北京市北京经济技术*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 环形 限流 方法 装置 | ||
本发明公开了一种基于环形链表的限流方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:初始化环形链表的存储空间以及指向该环形链表的空间地址的头指针和尾指针;将待传送的数据存入到所述环形链表的存储空间中;根据数据限流信息,设置所述尾指针的位置,以控制数据的传送速率;通过从所述环形链表的所述头指针到所述尾指针的遍历,将所述环形链表中的从所述头指针到所述尾指针的所述数据传送到服务器。从而,本发明的实施方式能够根据环形链表解决限流的问题并且能够提高服务处理能力。
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于环形链表的限流方法和装置。
背景技术
传统地,使用漏桶算法作为一种限流方法。漏桶算法以一个常量限制了出口流量速率,当入口流量速率大于出口流量速率时,因为流量容器有限,当超出流量容器大小时,则超出的流量会被丢弃。此外,还可以采用计数器固定窗口算法作为限流的方式。该算法通过维护一个单位时间内的计数值,每当一个请求通过时,就将计数值加1,当计数值超过预先设定的阈值时,就拒绝单位时间内的其他请求。
现有技术中至少存在如下问题:
1.当瞬间大量请求发送到服务器,如果使用漏桶算法则大量数据将会被拒绝,同时服务器如果在闲时状态下,也无法提高服务器的利用率。
2.在计数器固定窗口算法中,假设1秒内允许通过的请求阈值是200,如果用户在时间窗口的最后几毫秒发送了200个请求,并紧接着又在下一个时间窗口开始时发送了200个请求,则该用户实际在一秒内成功请求了400次,从而超过了阈值,而不会被限流。
发明内容
有鉴于此,本发明实施例提供一种基于环形链表的限流方法和装置,能够根据环形链表解决限流的问题,并且能够提高服务处理能力。
为实现上述目的,根据本发明实施例的一个方面,提供了一种基于环形链表的限流方法,包括:
初始化环形链表的存储空间以及指向该环形链表的空间地址的头指针和尾指针;
将待传送的数据存入到所述环形链表的存储空间中;
根据数据限流信息,设置所述尾指针的位置,以控制所述数据的传送速率;
通过从所述环形链表的所述头指针到所述尾指针的遍历,将所述环形链表中的从所述头指针到所述尾指针的所述数据传送到服务器。
优选地,根据数据限流信息设置所述尾指针的位置以控制数据的传送速率包括:
通过监控所述服务器的性能指标,设置所述数据限流信息中的限流阈值,
基于所述限流阈值,调整所述尾指针的位置。
优选地,所述服务器的性能指标包括:用户请求服务器并响应的时间、服务异常的监控和服务资源使用率中的至少一者。
优选地,当监控到所述用户请求服务器并响应的时间超过预定的时间时,下调所述限流阈值,并将所述尾指针前移,以降低所述数据的传送速率;并且
当监控到所述用户请求服务器并响应的时间没有超过预定的时间时,上调所述限流阈值,并将所述尾指针后移,以提高所述数据的传送速率。
优选地,当监控到所述服务器出现异常时,下调所述限流阈值,并将所述尾指针前移,以降低所述数据的传送速率;并且
当监控到所述服务器正常工作时,上调所述限流阈值,并将所述尾指针后移,以提高所述数据的传送速率。
优选地,当监控到所述服务器的资源使用率超过预定阈值时,下调所述限流阈值,并将所述尾指针前移,以降低所述数据的传送速率;并且
当监控到所述服务器的资源使用率没有超过预定阈值时,上调所述限流阈值,并将所述尾指针后移,以提高所述数据的传送速率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京沃东天骏信息技术有限公司;北京京东世纪贸易有限公司,未经北京沃东天骏信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110050553.8/2.html,转载请声明来源钻瓜专利网。