1 个稳定版本
1.0.0 | 2022年7月12日 |
---|
#9 in #limiter
每月下载 22 次
9KB
114 行
simple-rate-limiter
一个旨在最小化由过活跃客户端引起的争用的简单速率限制器。
设计
本速率限制器旨在实现以下目标
-
恶意过活跃客户端降低其他客户端服务能力的潜力有限
-
在 CPU 缓存之间的同步成本最小化,同时对于平滑流量突增也相当准确
-
内存开销与活跃密钥的数量呈线性关系
API
pub struct RateLimiter<K: Eq + Hash>;
impl<K: Eq + Hash> RateLimiter<K> {
pub fn new(limit: usize, slots: usize) -> Arc<Self>;
pub fn rotate_slots(&self);
pub fn check_limited(&self, key: K) -> bool;
}
微基准测试(不可信,请自行测试您的应用程序)
机器详情:AMD® Ryzen 5 3600,x86_64-pc-linux-gnu,SMT 开启
依赖项
~0.4–5.5MB
~11K SLoC