Repost: An alternative approach to rate limiting – Figma Design(限流)

2018-May-07

常见的限流算法参见 Wikipedia 的以下链接。此外还有Adaptive Rate Limiter。

Wikipedia的引用[3]即这篇博客 https://blog.figma.com/an-alternative-approach-to-rate-limiting-f8a06cf7c94c

这篇博客使用Redis实现了上面Leaky Bucket以外的四种算法。

  • Token bucket。不适合直接作为多进程共享的Rate Limiter,因为需要引入Redis Lock
  • Fixed window counter。请求可能集中分布在窗口边界两侧,限流不准确。
  • Sliding window log。使用Redis Sorted Map实现。内存占用较多。
  • Sliding window counter。Fixed window counter和Sliding window log的合体,将Fixed window划分为多个Sub Fixed window,以Sub Fixed window size为滑动单位。
posted @ 2018-05-08 00:28  AlbumCover  阅读(171)  评论(0)    收藏  举报