# 令牌桶限流器 ## 安装 ```bash composer require hyperf/rate-limit ``` ## 默认配置 | 配置 | 默认值 | 备注 | |:--------------:|:------:|:-------------------:| | create | 1 | 每秒生成令牌数 | | consume | 1 | 每次请求消耗令牌数 | | capacity | 2 | 令牌桶最大容量 | | limitCallback | NULL | 触发限流时回调方法 | | key | NULL | 生成令牌桶的 key | | waitTimeout | 3 | 排队超时时间 | ```php 1, 'consume' => 1, 'capacity' => 2, 'limitCallback' => null, 'key' => null, 'waitTimeout' => 3, ]; ``` ## 使用限流器 组件提供 `Hyperf\RateLimit\Annotation\RateLimit` 注解,作用于类、类方法,可以覆盖配置文件。 例如, ```php 类注解 > 配置文件 > 默认配置` ## 触发限流 当限流被触发时, 默认会抛出 `Hyperf\RateLimit\Exception\RateLimitException` 异常 可以通过[异常处理](zh-cn/exception-handler.md)或者配置 `limitCallback` 限流回调处理。 例如: ```php process()` 继续执行或者自行处理 return $proceedingJoinPoint->process(); } } ```