[发明专利]一种基于令牌桶的限流方法和装置在审
申请号: | 201810533488.2 | 申请日: | 2018-05-29 |
公开(公告)号: | CN110545246A | 公开(公告)日: | 2019-12-06 |
发明(设计)人: | 李斌;曹进保 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | H04L12/819 | 分类号: | H04L12/819;H04L12/851 |
代理公司: | 11219 中原信达知识产权代理有限责任公司 | 代理人: | 张一军;李阳<国际申请>=<国际公布>= |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 令牌数 限流 令牌桶 配置表 计算机技术领域 熔断 方法和装置 系统稳定性 令牌操作 请求类型 可用 写入 服务 | ||
本发明公开了一种基于令牌桶的限流方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:计算不同请求类型对应的所需令牌数和可预消费令牌数,并将其写入限流配置表;基于所述限流配置表,确定接入所述令牌桶的当前请求对应的所需令牌数和可预消费令牌数,从而根据所述所需令牌数和可预消费令牌数以及所述可使用令牌数,确定执行取令牌操作或者执行熔断操作。该实施方式能够解决无法兼顾系统稳定性和服务高可用的技术问题。
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于令牌桶的限流方法和装置。
背景技术
在大流量高并发系统中,一般通过缓存、限流和降级来控制流量。其中,限流是针对稀缺资源(例如商品秒杀或者抢票等)或业务需求限制(供应商接入,针对不同供应商依据订单量等因素限制接入并发量)等场景,需有一定手段来限制这些场景的并发/请求量。
目前,限流算法主要有以下三种:
1)计数器法:主要用来限制总并发数,通过全局总请求数或者一定时间段的总请求数设定的阀值来进行限流,属于暴力总数量限流,而不是平均速率限流。
2)令牌桶:按照固定速率往桶中添加令牌,请求是否被处理需要看桶中令牌是否足够,当令牌数减为零时,则拒绝新的请求,其限制的是平均流入速率,并允许一定程度的突发流量。
3)漏桶:按照固定速率流出请求,流入请求速率任意,当流入的请求数累积到漏桶容量时,则新流入的请求被拒绝,其主要目的是平滑流入速度。
高并发系统为了均衡负载,一般都会做分布式处理,而分布式限流最关键的是要将限流服务原子化,实现分布式限流的基础算法是基于上面介绍的三种算法之一。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:首先,现有的分布式限流实现技术主要是基于令牌桶算法实现,但是桶初始化过程和接入请求所需令牌数大多以手动设定的方式设置,接入请求所需令牌数难以量化,目前主要还是依据个人经验评估的方式设定,导致使用繁杂;其次,缺少高效且实用的算法,虽然现有算法(比如令牌桶算法)实现效率高,但是适用场景单一,对于一定高度优先级的请求是直接采用预消费的模式预消费令牌,如果高优先级并发请求量大,预消费令牌数很多,同样会使得后面到达的请求一直处于等待状态;最后,由于分布式服务接入场景多样化,因此分布式服务环境和普通宽带限流不同,不能简单依据请求数据包大小来或者接入请求重要程度来设定桶相关初始化参数,需要在保证系统稳定性和服务高可用之间找到平衡点。
发明内容
有鉴于此,本发明实施例提供一种基于令牌桶的限流方法和装置,以解决无法兼顾系统稳定性和服务高可用的技术问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种基于令牌桶的限流方法,包括:
计算不同请求类型对应的所需令牌数和可预消费令牌数,并将其写入限流配置表;
计算令牌桶内的可使用令牌数;
基于所述限流配置表,确定接入所述令牌桶的当前请求对应的所需令牌数和可预消费令牌数,从而根据所述所需令牌数和可预消费令牌数以及所述可使用令牌数,确定执行取令牌操作或者执行熔断操作。
可选地,所述基于所述限流配置,确定接入所述令牌桶的当前请求对应的所需令牌数和可预消费令牌数,从而根据所述所需令牌数和可预消费令牌数以及所述可使用令牌数,确定是否执行取令牌操作,包括:
在限流配置表中查找接入所述令牌桶的当前请求对应的类型和优先级,以从所述限流配置表中读取所述当前请求对应的所需令牌数和可预消费令牌数;
根据所述当前请求对应的所需令牌数和可预消费令牌数,以及所述令牌桶内的可使用令牌数,确定执行取令牌操作或者执行熔断操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810533488.2/2.html,转载请声明来源钻瓜专利网。