„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Ratenbegrenzung mit ThrottleX

Ratenbegrenzung mit ThrottleX

Veröffentlicht am 02.11.2024
Durchsuche:510

Rate Limiting with ThrottleX

Quick Links:

  • GitHub Repo
  • Wiki-Dokumentation

Einführung:

Hallo, Open-Source-Enthusiasten und Go-Fans! Ich bin zurück mit einem kurzen Überblick über mein Open-Source-Projekt ThrottleX, einen verteilten Ratenbegrenzer für APIs. Ich bin noch ziemlich neu in dieser Open-Source-Welt, daher sind Ihre Ratschläge immer willkommen! ?

ThrottleX wurde entwickelt, um Ihnen dabei zu helfen, den API-Verkehr effektiv zu verwalten und Ihr System reibungslos und fair zu halten. Ob es darum geht, Missbrauch zu verhindern oder hohe Belastungen zu bewältigen, ThrottleX ist für Sie da. Lassen Sie uns einige der Algorithmen zur Ratenbegrenzung untersuchen, die ThrottleX leistungsstark machen. ?

Ratenbegrenzungsalgorithmen erklärt ?‍?

ThrottleX ist vollgepackt mit drei Kernalgorithmen, die Ihnen bei der Verwaltung Ihres API-Verkehrs helfen:

1. Feste Fensterratenbegrenzung

Wie es funktioniert: Stellen Sie sich vor, Sie teilen die Zeit in feste Intervalle ein. Während jedes Intervalls lassen Sie eine feste Anzahl von Anfragen zu – beispielsweise 100 Anfragen pro Minute. Sobald das Fenster geschlossen wird, wird der Zähler zurückgesetzt.

Anwendungsfall: Ideal für vorhersehbare Verkehrsmuster, aber seien Sie vorsichtig beim „Grenzproblem“, bei dem viele Anfragen am Ende des Fensters die beabsichtigte Ratenbegrenzung umgehen können.

2. Gleitfenster-Ratenbegrenzung

Wie es funktioniert: Es ist wie ein gleitender Durchschnitt – anstatt sich am Ende jedes Fensters vollständig zurückzusetzen, „gleitet“ die Ratenbegrenzung über die Zeit und sorgt so für eine reibungslosere Steuerung.

Anwendungsfall: Perfekt, um Spitzen zu vermeiden und Anfragen gleichmäßiger zu verteilen.

3. Token-Bucket-Ratenbegrenzung

Wie es funktioniert: Stellen Sie sich einen Eimer vor, der sich gleichmäßig mit Token füllt. Anfragen verbrauchen Token, und wenn der Bucket leer ist, werden Anfragen blockiert, bis er wieder aufgefüllt wird.

Anwendungsfall: Ideal, um plötzliche Verkehrsstöße zuzulassen, wenn Token gespart werden.

Beispielverwendung ?️

Hier ist ein einfaches Beispiel für die Verwendung des Ratenbegrenzers mit festem Fenster:

package main

import (
    "github.com/neelp03/throttlex/ratelimiter"
    "github.com/neelp03/throttlex/store"
    "time"
    "fmt"
)

func main() {
    // Initialize an in-memory store and a Fixed Window rate limiter
    memStore := store.NewMemoryStore()
    limiter, err := ratelimiter.NewFixedWindowLimiter(memStore, 10, time.Minute)
    if err != nil {
        fmt.Println("Failed to create limiter:", err)
        return
    }

    // Simulate API requests
    key := "user1"
    for i := 0; i 



Erwartete Ausgabe:

Request 1 allowed
Request 2 allowed
... (up to 10 allowed)
Request 11 blocked
Request 12 blocked
... (up to 15 blocked)

Was kommt als nächstes für ThrottleX? ?

  • Priorisierte Ratenbegrenzung: Unterschiedliche Prioritäten für verschiedene Benutzer.
  • Dynamische Ratenbegrenzung: Passen Sie die Grenzwerte basierend auf der Serverlast an.
  • Gleichzeitigkeitslimit: Gleichzeitige Anfragen verwalten.

Seien Sie gespannt auf diese zukünftigen Updates, die ThrottleX noch leistungsfähiger machen!

Wie können Sie einen Beitrag leisten?

Ich bin noch ein Neuling im Bereich Open Source und würde mich freuen, wenn Sie Teil dieser Reise sind! Beiträge sind immer willkommen – sei es Fehlerbehebungen, Vorschläge oder Dokumentationsverbesserungen.

Schauen Sie sich das Repo an: ThrottleX GitHub Repo und geben Sie ihm einen Stern, wenn Sie es nützlich finden. Fühlen Sie sich frei, Probleme zu eröffnen oder Anfragen zu stellen – jedes bisschen hilft!

Abschließende Gedanken

ThrottleX ist mein Versuch, die API-Ratenbegrenzung zugänglicher und effizienter zu machen. Sorgen wir dafür, dass es Spaß macht (und weniger schmerzt)! ?

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/neelp03/rate-limiting-with-throttlex-26df?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3