限制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