我需要设计速率限制器限制服务来限制请求。 对于每个传入请求,方法都会检查每秒请求是否超出其限制。如果超过,它将返回需要等待处理的时间量。速率限制算法限制请求
寻找一个简单的解决方案,它只是使用系统滴答计数和rps(请求每秒)。不应该使用队列或复杂的速率限制算法和数据结构。
编辑:我将在C++中实现这一点。另外,请注意我不想使用任何数据结构来存储当前执行的请求。 API会像:(!RateLimiter.Limit())
如果 { 做工作 RateLimiter.Done();
} 其他 拒绝请求
你打算如何衡量每个请求给系统带来的负载? – CaldasGSM 2014-10-30 16:24:49
我不想测量负载。系统是一个非常低延迟的系统。所以只想限制费率。 – user3403260 2014-10-30 16:32:09
什么是你正在谈论的费率规格?请求/秒,请求/分钟? – CaldasGSM 2014-10-30 16:35:37