实现Web API请求限制/速率限制的常用方法有哪些?

时间:2010-02-24 15:31:22

标签: ruby-on-rails django api throttling

实施Web API请求限制的常用方法有哪些?是否有适用于常见Web框架(Rails,Django,Java等)的库,可以为您提供临时禁止?

相关问题表明,速率限制是通过限制IP请求在Web服务器上完成的,但这意味着所有请求都被平等对待。似乎需要由应用程序处理限制因为:

  1. 某些API调用可能有不同的速率限制(例如,自动完成API会比其他调用具有更高的限制)
  2. Web服务器无法处理API密钥临时禁止
  3. 来自代理服务器后面的请求被视为相同(?)
  4. 相关问题:hereherehere

2 个答案:

答案 0 :(得分:3)

Django-Piston在那里有一些整洁的节流。查看来源http://bitbucket.org/jespern/django-piston/wiki/Home

答案 1 :(得分:1)

您可能还希望使用IPtables(linux)等工具来限制某些传入流量。还有第三方服务,如3scale(http://www.3scale.net - 免责声明 - 我为他们工作:-)),它们可以跟踪和管理您希望以每个用户为基础应用于流量的所有使用限制。