限制 API 请求的最佳方法是什么?基本上,我们希望将用户限制为每小时 360 个 API 请求(每 10 秒一个请求)。想到的是跟踪每个 API 请求和存储:
ip-address hourly-requests
1.2.3.4 77
2.3.4.5 34
3.4.5.6 124
如果 ip-address 请求大于 360,只需返回一个标头:
429 - Too Many Requests
然后每小时回滚计数器每小时请求。这似乎是一种非常低效的方法,因为我们必须对每个 API 请求进行 MySQL 查询以增加计数器。此外,我们需要一个 cron 任务来每小时重置所有计数器。
有没有更优雅/高效的解决方案?