分布式速率限制算法

时间:2012-11-16 20:45:20

标签: algorithm distributed-computing rate-limiting

我正在开发定价平台,我必须实施分布式速率限制算法。我有 k 网关,提供 x 服务。任何网关都可以提供任何服务(通过负载均衡器)。客户每秒向服务购买一次呼叫,其呼叫可以通过任何网关路由。那么,有人知道一个好的算法来更新所有网关上的呼叫计数器以限制客户呼叫吗?

关于此算法的两个重要指标是网络开销以及接受的呼叫数与速率限制之间的偏差。

谢谢!

修改 我只是想知道是否有一个“众所周知的”算法。

1 个答案:

答案 0 :(得分:4)

我已经实现了基于此article(archive.org)的解决方案。我认为该算法被称为Leaky Bucket,但它工作正常。它并不完美,因为它允许整个配额在突发中使用,但总体而言,它与node.js和Redis一样快。接受的请求和速率之间的差异可能非常高,取决于样本窗口和桶大小之间的比率。