[发明专利]基于Redis的流量控制方法、装置、电子设备及存储介质有效
| 申请号: | 202210656437.5 | 申请日: | 2022-06-10 |
| 公开(公告)号: | CN114915593B | 公开(公告)日: | 2023-05-09 |
| 发明(设计)人: | 苏珂;任亚军 | 申请(专利权)人: | 北京世纪好未来教育科技有限公司 |
| 主分类号: | H04L47/10 | 分类号: | H04L47/10;H04L47/215 |
| 代理公司: | 北京开阳星知识产权代理有限公司 11710 | 代理人: | 王艳斌 |
| 地址: | 100089 北京市海淀区中*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 redis 流量 控制 方法 装置 电子设备 存储 介质 | ||
本公开提供一种基于Redis的流量控制方法、装置、电子设备及存储介质,方法包括:根据接收的业务请求,确定业务请求对应的用户标识和接口标识;确定用户标识对应的目标用户的流量限值;在流量限值大于预设流量阈值时获取与接口标识对应的目标接口的请求计数器的计数值;根据计数值和缓存服务中间件的集群分片数,确定分片索引;从与分片索引对应的第一Redis分片中获取剩余令牌数和请求执行时间进行令牌桶限流计算,在根据计算结果确定从令牌桶中获取到令牌的情况下,向后转发业务请求。本方案可以使得同一用户标识及同一接口标识下的请求计算被均衡分配到Redis中的各个分片上,实现各分片CPU的负载均衡,从而有效避免单分片计算资源耗尽的问题。
技术领域
本公开涉及流量管理技术领域,尤其涉及一种基于Redis的流量控制方法、装置、电子设备及存储介质。
背景技术
缓存服务中间件Redis是分布式系统和微服务容器系统中的重要组成部分,很多系统利用Redis的内存高吞吐特性来做全局流量控制等核心业务功能,有效的流控措施对保障系统平台的稳定运行起到了至关重要的作用。
目前,常用的流控措施是基于Redis的令牌桶流控算法,能够在限制调用的平均速率的同时还允许一定程度的突发调用。然而,基于Redis实现令牌桶算法时,由于大型系统的高并发大流量特性,需要使用集群版多分片的Redis,在此基础上,在单一用户接口的超高并发流量场景下,容易导致单分片计算资源耗尽的问题,从而使得整个Redis不可用。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开实施例提供了一种基于Redis的流量控制方法、装置、电子设备及存储介质。
根据本公开的一方面,提供了一种基于Redis的流量控制方法,包括:
根据接收的业务请求,确定所述业务请求对应的用户标识和接口标识;
根据所述用户标识,确定所述用户标识对应的目标用户的流量限值;
在所述流量限值大于预设流量阈值的情况下,获取与所述接口标识对应的目标接口的请求计数器的计数值;
根据所述计数值和缓存服务中间件的集群分片数,确定分片索引;
从与所述分片索引对应的第一Redis分片中获取剩余令牌数和请求执行时间进行令牌桶限流计算,并获取返回结果;
在根据所述返回结果确定从令牌桶中获取到令牌的情况下,将所述业务请求转发给所述目标接口下的服务实例进行执行。
根据本公开的另一方面,提供了一种基于Redis的流量控制装置,包括:
第一确定模块,用于根据接收的业务请求,确定所述业务请求对应的用户标识和接口标识;
第二确定模块,用于根据所述用户标识,确定所述用户标识对应的目标用户的流量限值;
第一获取模块,用于在所述流量限值大于预设流量阈值的情况下,获取与所述接口标识对应的目标接口的请求计数器的计数值;
第三确定模块,用于根据所述计数值和缓存服务中间件的集群分片数,确定分片索引;
第二获取模块,用于从与所述分片索引对应的第一Redis分片中获取剩余令牌数和请求执行时间进行令牌桶限流计算,并获取返回结果;
发送模块,用于在根据所述返回结果确定从令牌桶中获取到令牌的情况下,将所述业务请求转发给所述目标接口下的服务实例进行执行。
根据本公开的另一方面,提供了一种电子设备,包括:
处理器;以及
存储程序的存储器,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京世纪好未来教育科技有限公司,未经北京世纪好未来教育科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210656437.5/2.html,转载请声明来源钻瓜专利网。





