[发明专利]一种请求限速方法、装置、电子设备及存储介质在审
申请号: | 202010215327.6 | 申请日: | 2020-03-24 |
公开(公告)号: | CN111381988A | 公开(公告)日: | 2020-07-07 |
发明(设计)人: | 张德阳;王兆仲 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 100080 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 请求 限速 方法 装置 电子设备 存储 介质 | ||
本申请提供了一种请求限速方法、装置、电子设备及存储介质,所述方法包括:接收终端发送的请求,所述请求携带时间戳;根据所述时间戳,获得在至少两个时间周期内已发送到缓存队列的请求的数量,所述缓存队列用于缓存待处理的请求,各时间周期互不相同;在任意时间周期内已发送到缓存队列的请求的数量大于所属时间周期对应的预设阈值时,针对所述终端发送的请求执行限速策略。通过本申请的请求限速方法,可以根据实际需求设置多个单位不同的时间周期,通过对各个时间周期内已发送到缓存队列的请求的数量进行监控,进而实现对接口的访问速率的灵活控制,尤其是在高并发请求下,能保证服务端正常服务于大部分用户的请求,避免系统瘫痪的状况。
技术领域
本发明涉及系统维护技术领域,特别是涉及一种请求限速方法、装置、电子设备及存储介质。
背景技术
在开发高并发系统时,通常可以采用三种方式来保护系统,包括:缓存、降级以及限流。缓存的目的是提升系统访问速度且增大系统的吞吐量;降级的目的是当服务出现问题或者影响到核心流程的性能时,将出现问题的服务暂时屏蔽,等待用户访问高峰期过后或问题解决后再打开;限流的目的是通过对并发访问或请求进行限速,或者对一个时间窗口内的请求进行限速以保护系统,在达到限制速率时拒绝服务。然而,在一些高并发系统后端重要服务之间的调用场景中,无论是缓存、降级还是限流,均无法实现对系统接口的访问速率的灵活控制,因而无法较好地实现对系统的保护。
发明内容
本申请提供了一种请求限速方法、装置、电子设备及存储介质,旨在针对高并发系统中后端接口的比较重要或基础的接口,提供一种更灵活的请求限速方法。具体技术方案如下:
在本申请实施例第一方面,首先提供了一种请求限速方法,执行于服务器,包括:
接收终端发送的请求,所述请求携带时间戳;
根据所述时间戳,获得在至少两个时间周期内已发送到缓存队列的请求的数量,所述缓存队列用于缓存待处理的请求,各时间周期的单位互不相同;
在任意时间周期内已发送到缓存队列的请求的数量大于所属时间周期对应的预设阈值时,针对所述终端发送的请求执行限速策略。
可选地,至少两个时间周期包括:以秒为单位的第一时间周期、以分钟为单位的第二时间周期、以小时为单位的第三时间周期;
根据所述时间戳,获得在至少两个时间周期内已发送到缓存队列的请求的数量,包括:
根据所述时间戳的秒值,获得在与所述秒值对应的一秒钟内已发送到缓存队列的请求的第一数量;
根据所述时间戳的分钟值,获得在与所述分钟值对应的一分钟内已发送到缓存队列的请求的第二数量;
根据所述时间戳的小时值,获得在与所述小时值对应的一小时内已发送到缓存队列的请求的第三数量;
在任意时间周期内已发送到缓存队列的请求的数量大于所属时间周期对应的预设阈值时,针对所述终端发送的请求执行限速策略,包括:
在所述第一数量、第二数量以及第三数量中存在至少一个数量大于对应的预设阈值时,针对所述终端发送的请求执行限速策略。
可选地,所述方法还包括:
在所有时间周期内已发送到缓存队列的请求的数量均不大于所属时间周期对应的预设阈值时,将所述请求发送到所述缓存队列,并更新各个时间周期内已发送到缓存队列的请求的数量。
可选地,在接收终端发送的请求之前,所述方法还包括:
在本地为各时间周期分别创建对应的缓存对象,所述缓存对象的有效时长大于对应的时间周期的长度,所述缓存对象用于以键值对的形式存储下一次接收到的请求的时间戳,和在下一次接收到的请求的时间戳所属的各个时间周期内已发送到缓存队列的请求的数量;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010215327.6/2.html,转载请声明来源钻瓜专利网。