Каковы общие способы реализации регулирования и ограничения скорости запросов веб-API? - PullRequest
7 голосов
/ 24 февраля 2010

Каковы общие способы реализации регулирования количества запросов веб-API? Существуют ли библиотеки для обычных веб-фреймворков (Rails, Django, Java и т. Д.), Которые дают вам это вместе с временным запретом?

Соответствующий вопрос предполагает, что ограничение скорости выполняется на веб-сервере путем ограничения запросов по IP, но это будет означать, что все запросы обрабатываются одинаково. Похоже, что регулирование должно выполняться приложением, потому что:

  1. Некоторые вызовы API могут иметь разные ограничения скорости (например, API автозаполнения будет иметь более высокий предел, чем другие вызовы)
  2. Временный бан по API-ключу не может быть обработан веб-сервером
  3. Запросы, поступающие из-за прокси, обрабатываются одинаково (?)

связанных вопросов: здесь , здесь и здесь

Ответы [ 2 ]

3 голосов
/ 24 февраля 2010

У Джанго-Пистона есть немного дросселирования. Проверьте источник http://bitbucket.org/jespern/django-piston/wiki/Home

1 голос
/ 07 марта 2010

Вы также можете использовать такие инструменты, как IPtables (linux), чтобы жестко ограничить часть входящего трафика. Есть также сторонние сервисы, такие как 3scale (http://www.3scale.net - заявление об отказе - я работаю на них :-)), которые позволяют отслеживать и управлять всеми ограничениями использования, которые вы хотите применить к трафику для каждого пользователя. .

...