漏桶限流算法和令牌限流算法的区别(通俗易懂)

网上找了挺多资料看这两个的区别,十个有9个就是相互抄袭复制,一直比较懵懂,下边是我查资料总结的对这两个的理解。

建议:先看看其他博客的理论知识

漏桶算法

即 一个固定容量的桶,上边不停的滴水,下边漏水。

特别注意:上边滴水的速度是不固定的,下边则是以固定的流速往下滴水,当下边的流速小于上边的流速时,桶里的水就会溢出。
映射到具体的网络请求就是:网络请求就相当于上边的水滴,一个请求对应一个水滴,大量的请求到来时先缓存到漏桶中,然后以固定的频率将这些请求转发出去,即下边的漏水。
达到的效果:请求总是以固定的速度被转发到业务服务。不管网络请求在单位时间内来了多少,漏桶都是以固定速率转发请求,所以请求到达业务服务的频率基本一样。当请求数量超过桶容量时就拒绝服务,此时则需要通过降级或者其他方式进行处理,这属于其他范畴,暂不讨论。

令牌桶算法

即 一个线程以固定的速率生产令牌扔进桶中,当请求到达时需要从桶中获取一个令牌才可被转发,否则拒绝转发。

达到的效果:单位时间内令牌的最大数量有限。请求的转发并不受限于令牌的生产速度,只要桶中有令牌并且能够拿到,该请求就可以被转发。

两者比较

共同点
1、两种算法都能控制单位时间内的最大请求数(即桶的最大容量)
不同点
1、漏桶算法关注的是请求被以一定速率转发,容易引起资源业务服务资源利用不充分;令牌算法关注的是单位时间内的最大请求数,一定程度上容忍短时间的高并发,但如果配置不当容易造成服务器阻塞甚至宕机。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值