Rate limiting-Algorithmus für die Drosselung Anfrage

Ich brauche zur Gestaltung einer rate limiter service für die Drosselung Anfragen.
Für jede ankommende Anfrage eine Methode soll überprüfen, ob die Anforderungen pro Sekunde das limit überschritten hat oder nicht. Wenn es überschritten hat, dann wird es wieder die Zeit, die man warten muss behandelt werden.

Suche nach einer einfachen Lösung, die nur das system-tick count und rps(Anfragen pro Sekunde). Sollten Sie nicht verwenden die Warteschlange oder Komplex rate limiting algorithmen und Datenstrukturen.

Edit: ich werde die Umsetzung in c++. Beachten Sie auch, ich will nicht beliebige Daten verwenden, die Strukturen, die zum speichern der Antrag derzeit immer ausgeführt.
API wäre wie:

if (!RateLimiter.Limit())
{
arbeiten
RateLimiter.Done();

}
sonst
ablehnen Antrag

  • wie planen Sie zur Messung die Last, die jeder Anforderung bringt das system?
  • Ich will nicht zu Messen Sie den laden. System ist ein low-latency system. So einfach wollen für die Begrenzung der rate.
  • was ist die Art der rate-Spezifikation, die Sie sprechen? Anfragen/Sekunde, Anfragen/Minuten?
  • Ja, einschränken möchten, RPS system. Wenn ich z.B. 50 rps, nicht mehr als 50 Anfrage bekommen sollten, Ihnen jeden zweiten.
InformationsquelleAutor user3403260 | 2014-10-30
Schreibe einen Kommentar