星海

分布式与消息队列 · 单选题 · 第 63 题

Java 后端开发面试 · 第 63 题

关于令牌桶限流算法,下列说法正确的是?

  1. A请求先进入桶中排队,再以固定速率从桶底流出,输出速率永远平滑不变
  2. B把时间划分成固定窗口分别计数,在窗口交界处也不会出现两倍流量的突刺问题
  3. C以固定速率往桶里放令牌,请求拿到令牌才能通过,桶里有积攒时允许一定的突发
  4. D令牌桶完全不允许任何突发流量,所以只适合用于对外部接口的严格限速

答案

C C. 以固定速率往桶里放令牌,请求拿到令牌才能通过,桶里有积攒时允许一定的突发

解析

令牌桶的容量决定能承受多大的突发,补充速率决定长期的平均速率,Guava 的 RateLimiter 就是这种思路。请求排队、匀速流出的是漏桶,它把流量整形得很平滑但不允许突发。固定窗口计数在窗口交界处可能放过两倍流量,所以有了滑动窗口。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。