Ratenbegrenzung
Middleware zur Bereitstellung von Ratenbegrenzungsfunktionalität.
Hauptmerkmale
-
RateIssuerbietet eine Abstraktion zur Identifizierung von Besucherschlüsseln.RemoteIpIssuerist eine Implementierung davon, die Besucher anhand ihrer IP-Adressen bestimmt. Schlüssel sind nicht zwingend Zeichenketten; jeder Typ, der dieHash + Eq + Send + Sync + 'static-Einschränkungen erfüllt, kann als Schlüssel dienen. -
RateGuardbietet eine Abstraktion für Ratenbegrenzungsalgorithmen. Standardimplementierungen umfassen festes Fenster (FixedGuard) und gleitendes Fenster (SlidingGuard). -
RateStorestellt Datenbankoperationen bereit.MokaStoreist eine eingebaute In-Memory-Cache-Implementierung basierend aufmoka. Sie können auch eigene Implementierungen definieren. -
RateLimiterist eine Struktur, dieHandlerimplementiert und einskipper-Feld enthält, um Anfragen zu spezifizieren, die die Ratenbegrenzung umgehen sollen. Standardmäßig wirdnone_skipperverwendet, was bedeutet, dass keine Anfragen übersprungen werden. -
QuotaGetterbietet eine Abstraktion zum Abrufen von Kontingenten. Es holt ein Kontingentobjekt basierend auf demKeydes Besuchers, wodurch Benutzerkontingente und andere Konfigurationen in Datenbanken gespeichert und dynamisch geändert oder abgerufen werden können.
Beispielcode