对四种限流算法的思考和总结
  XFFtHPXbStbF 23天前 41 0

对四种限流算法的思考和总结

固定窗口限流

是什么:指定一个单位时间内允许多少次操作来限流
优点: 简单
缺点: 假如设置了一分钟允许10次操作,但是第一秒就操作了10次。或者第59秒来了10次操作,紧接着第61秒又来了10次 这样的话就形成了流量突刺

滑动窗口限流

把上面的单位时间拆分,打个比方,刚才是1分钟可以操作10次,现在把1分钟划分成10个6s的窗口,每个窗口期间只能接收1个请求,当0~6秒这个窗口结束时,自动把60 ~ 66秒这个窗口添加进来,就好像是滑动的一样。这样就解决了流量突刺的问题

缺点: 实现复杂 很难选择合适的滑动单位

漏桶限流算法

设置一个有存储上限的桶, 请求来了, 先放到桶中,按指定的固定速率给到系统来处理。

缺点: 因为速率固定,所以没办法快速处理一批请求。固定速率还限制了性能,比如服务器每秒最大能处
理五个请求,但是为了稳定我们肯定要设置小于五个的请求,突然来了的流量就只能存在桶里慢慢给服务
器,没办法用到服务器的性能上限

令牌桶限流算法

设置一个有上限的令牌桶,按固定的速率往令牌桶中放令牌,一个令牌对应一个请求,请求来了,先去令牌桶中拿到对应的令牌再带着令牌发送给服务器处理。这样如果突然来了一批请求,桶里面的令牌可能因为之前没什么请求有累积。

这样既有前面算法解决流量突刺问题的优点,又一定程度上增加了并发性能

缺点:还是要考虑放令牌的速率

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 23天前 0

暂无评论

推荐阅读
  vqyNVbtzBw9E   23分钟前   0   0   0 Java
  ZTo294hNoDcA   23分钟前   0   0   0 Java
  3dygdw7fVgD7   23分钟前   0   0   0 Java
  ZTo294hNoDcA   23分钟前   0   0   0 Java
  028qt9vJ8T8H   2天前   23   0   0 Java
  028qt9vJ8T8H   2天前   23   0   0 Java
  Ohj9nz73OSYY   3天前   14   0   0 Java
XFFtHPXbStbF