2010-02-24 7 views
7

Welche Möglichkeiten zur Implementierung von Web-API-Anforderungsdrosselungen gibt es? Gibt es Bibliotheken für gängige Web-Frameworks (Rails, Django, Java usw.), die dies zusammen mit temporärem Bann geben?Welche Möglichkeiten gibt es, um Web-API-Request-Throttling/Rate-Limiting zu implementieren?

Eine verwandte Frage schlägt vor, dass die Ratenbegrenzung auf dem Webserver durch Begrenzen von Anfragen per IP erfolgt, aber das würde bedeuten, dass alle Anfragen gleich behandelt werden. Es scheint, wie Drosselung durch die Anwendung gehandhabt werden muss, weil:

  1. Einige API-Aufrufe unterschiedliche Frequenzgrenzen haben können (zB eine automatische Vervollständigung API eine höhere Grenze als andere Anrufe würden)
  2. Temporary durch API-Schlüssel verbieten können ‚t vom Webserver
  3. Anfragen von hinter einem Proxy gleich behandelt kommen behandelt werden

Fragen (?): here, here und here

Antwort

1

Sie können auch Tools wie IPtables (Linux) verwenden, um einen Teil des eingehenden Datenverkehrs hart zu begrenzen. Es gibt auch Dienste von Drittanbietern wie 3scale (http://www.3scale.net - Disclaimer - ich arbeite für sie :-)), die es ermöglichen, alle Nutzungsbeschränkungen zu verfolgen und zu verwalten, die Sie für den Verkehr pro Benutzer anwenden möchten.

Verwandte Themen