限制API请求的最佳方式是什么?基本上,我们希望每小时限制用户360个API请求(每10秒一次请求)。想到什么是跟踪每个API请求和存储:速率限制如何限制API
ip-address hourly-requests
1.2.3.4 77
2.3.4.5 34
3.4.5.6 124
如果IP地址请求是大于360,只返回一个头:
429 - Too Many Requests
然后回滚柜台小时,请求每隔一小时。这似乎是一种非常低效的方法,因为我们必须对每个API请求进行MySQL查询以增加计数器。此外,我们需要一个cron任务来每隔一小时重置所有计数器。
是否有一个更优雅/有效的解决方案?
对于更具弹性的方法,您可能需要查看[令牌桶算法](https://en.wikipedia.org/wiki/Token_bucket)。 计数器应该放在一些存储器中,以提高性能。 – botchniaque 2015-07-02 10:02:36