知识卡片
漏桶与令牌桶的本质差异
内容
漏桶保持流出速率恒定,多余直接溢出丢弃,起削峰填谷作用;令牌桶保持流入令牌速率恒定但允许攒起来,突发时可一次性消耗多个令牌。漏桶限制绝对瞬时速率,令牌桶限制一段时间平均速率、允许合理突发。发散:下游对瞬时冲击敏感用漏桶拉平;下游有弹性只关心平均负载用令牌桶更充分利用能力。
参考来源
- 位置:第9章《高可用与稳定性》9.2节「限流」漏桶算法与令牌桶算法(源文件:_epub-src/text/part0043.html)
- 结论依据:原文明确说明漏桶容量固定、流出速率恒定,流入数据包超出容量则溢出丢弃;令牌桶容量固定、流入令牌速率恒定但允许攒积,请求到达时取令牌;二者原理刚好相反,令牌桶限制平均流入速率而漏桶起削峰作用,直接支持卡片论述。
- 原始内容:"漏桶的容量是固定的,流出的速率是恒定的……如果流入数据包超出了桶的容量,则流入的数据包溢出了(被丢弃)……当一个请求到达之后,从桶中取出一个令牌……二者的原理刚好相反,一个是流出速率保持恒定,一个是流入速率保持恒定……漏桶有点类似消息队列,起到了削峰的作用。"