Tag: 限速

番石榴的RateLimiter每分钟而不是秒?

我试图限制用户可以使用我的REST API创建的帐户数量。 我本来希望使用Guava的RateLimiter只允许IP在10分钟内创建5个帐户,但RateLimiter.create方法只需要一个double指定许可数“每秒”。 有没有办法配置RateLimiter以大于一秒的粒度释放许可?

Servletfilter:非常简单的限速filter,允许突发

我想添加一个非常简单的filter来执行每IP速率限制,但仍然允许突发,有点像iptables允许做的。 我不想安装整个厨房水槽:我只需要一个实现该function的Filter类。 什么是一个好的数据结构/算法,允许做一个简单的“速率限制但允许短暂的突发”? 例如,如果用户尝试每分钟执行的操作超过’x’GET / POST,我想提供HTTP错误代码,但我仍然想让同一个用户“爆发”到’y’(其中y> x)直到他击中爆裂帽。 仅仅是为了比较,这里是如何使用iptables配置类似的速率限制与突发(这只是一个例子,显示我在说什么,即使在我的情况下它不是关于设置速率限制+ TCP TCP数据包突发): iptables -A INPUT -p tcp –syn -m limit –limit 1/s –limit-burst 5