Как ограничить скорость API [закрыто]

Как лучше всего ограничить количество запросов для 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-адресов больше 360, просто верните заголовок с:

  429 - Too Many Requests

Затем откатывайте счетчик ежечасных запросов каждый час. Это кажется очень неэффективным методом, поскольку мы должны делать MySQL-запрос на каждый запрос API, чтобы увеличить счетчик. Также нам понадобится задача cron для сброса всех счетчиков каждый час.

Есть ли более элегантное и эффективное решение?

55
задан Justin 7 January 2012 в 16:09
поделиться