hi-man / rateguardian
基于 yac 的本地速率限制
v1.0.0
2020-11-29 09:09 UTC
Requires
Requires (Dev)
- phpunit/phpunit: ^9.4
README
让您的服务器保持冷静
需求
- php 7.3+
- yac 2.0.3+
安装
composer require hi-man/rateguardian
使用
步骤 1 : 初始化 guardian
RateGuardian::getInstance()->guardianOn($key, $total, $ttl)
$key唯一的 guardian 密钥,例如 api 路径名,不超过 41 个字符$ttl秒,计数器将在该期间增加$total在$ttl秒内允许的最大计数器值
步骤 2 : 使用 guardian 键保护 api
RateGuardian::getInstance()->guard($key);
- 一个
false值表示 api 过载,应用程序应处理这种情况,而不是提供服务 - 返回值
- 如果计数器小于
$total则返回true - 如果计数器等于
$total则返回true - 如果
$key未通过guardianOn注册则返回true - 否则返回
false
- 如果计数器小于
步骤 3 : 清除 guardian
RateGuardian::getInstance()->guardianOff($key);
- 重启
php-fpm或 php 脚本也会清除 guardian 设置
可选:获取 guardian 信息
RateGuardian::getInstance()->show($key);
- 返回一个 guardian 信息的数组
total由guardianOn提供的值ttl由guardianOn提供的值expired计算周期结束的 unix 时间戳current当前计数器值