# 令牌桶算法

> 一个以固定速率向"桶"中填充令牌的算法。

- ID: m04578
- 分类: system
- 领域: 系统论

## 定义

一个以固定速率向"桶"中填充令牌的算法。每个数据包都需要消耗一个令牌才能被发送。如果桶空了，就必须等待新的令牌生成。这允许在突发流量时发送更多数据，但长期平均速率被限制。脚手架作用： 实现平滑突发流量。在资源分配中，既要保证公平性（长期平均速率），又要允许偶尔的"冲刺"（突发流量）。这是所有"弹性"配额系统的核心思想。

## 机制

以固定速率向桶中填充令牌，每个请求需消耗一个令牌，桶空则限流/排队。桶容量允许短时突发，长期平均速率受填充速率约束，兼顾公平与弹性。

## 练习

1. 确定平均速率（填充速率）与突发容量（桶大小）；2. 请求到达时若有令牌则放行并扣减；3. 无令牌则拒绝/排队/降级；4. 监控桶深调参。

## 脚手架用法

实现平滑突发流量。在资源分配中，既要保证公平性（长期平均速率），又要允许偶尔的"冲刺"（突发流量）。这是所有"弹性"配额系统的核心思想。

[阅读网页](https://thinkingmodels.site/entries/detail/m04578)
