razonyang/token-bucket
最新稳定版本:1.0.0
Composer 安装命令:
composer require razonyang/token-bucket
包简介
PHP Token Bucket
README 文档
README
It is an implementation of Token Bucket algorithm that for HTTP rate limiter.
Installation
$ composer require razonyang/token-bucket
Integration
You can also build your own, let's take 5000 requests per hours as example:
// create a token bucket manager $capacity = 5000; // each bucket capacity, in other words, maximum number of tokens. $rate = 0.72; // 3600/5200, how offen the token will be added to bucket $logger = new \Psr\Log\NullLogger(); // PSR logger $ttl = 3600; // time to live. $prefix = 'rateLimiter:'; // prefix. $manager = new \RazonYang\TokenBucket\Manager\RedisManager($capacity, $rate, $logger, $redis, $ttl, $prefix); // implements rate limiter, comsumes a token from the bucket which called $name. $name = 'uid:route'; // the name of bucket. $comsumed = $manager->consume($name, $remaining, $reset); // set header header('X-Rate-Limit-Limit: ' . $manager->getLimit()); header('X-Rate-Limit-Remaining: ' . $remaining); // remaining number of tokens. header('X-Rate-Limit-Reset: ' . $reset); if (!$comsumed) { throw new \Exception('Too many requests', 429); } // continue handling
Credit
It was inspired from the follow documents and code:
统计信息
- 总下载量: 24.61k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 7
- 点击次数: 0
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2019-08-16