Alap adatkezelésAPI-k

Sebességkorlátozás

Atomikus, szerveroldali sebességkorlátok. GCRA egyetlen paranccsal, vagy elnevezett korlátozók csúszóablakkal, token bucket vagy leaky bucket algoritmussal. Lua nélkül.

atomikus parancs kérésenként
1
algoritmus
4
Lua-szkript
0
Lépés 1 / 5
Engedélyezve

Percenként 10 kérés a 42-es felhasználónak. A válasz megmondja, hogy engedélyezett-e, mi a korlát, és mennyi maradt.

Példa munkamenetplaying
# Engedélyezve
hotkv> GCRA.LIMIT ratelimit:user:42 60000 10
1) (integer) 0
2) (integer) 10
3) (integer) 9
4) (integer) -1
5) (integer) 6000

Animált bemutató valódi HotKV-parancsokkal és példa-válaszokkal. Kattintson bármelyik lépésre, hogy odaugorjon. A parancsok és a válaszok angolul maradnak, pontosan úgy, ahogy begépeli és látja őket a HotKV-ban.

A probléma

Korlátok nélküli API egyetlen rosszul viselkedő klienstől van a leállástól. Ha az ellenőrzést az alkalmazáskódban végzi, az egy olvasást, egy számítást és egy írást jelent, és az egyidejű kérések átcsúsznak a köztük lévő réseken. Sok csapat végül egy Lua-szkriptet tart karban csak azért, hogy atomikus legyen.

Hogyan kezeli a HotKV

A GCRA.LIMIT egy lépésben dönt és rögzít, így az egyidejű kliensek nem mehetnek át ugyanazon az állapoton, a korlát pedig egyenletesen töltődik újra, ahelyett hogy az ablakhatároknál nullázódna. A név szerint kezelt korlátokhoz a RATELIMIT.CREATE csúszóablakos, token bucket vagy leaky bucket korlátozót hoz létre, statisztikával arról, mit engedélyezett és mit utasított el.

Lépésről lépésre

Mi történik, parancsról parancsra

  1. 01

    Engedélyezve

    Percenként 10 kérés a 42-es felhasználónak. A válasz megmondja, hogy engedélyezett-e, mi a korlát, és mennyi maradt.

    GCRA.LIMIT ratelimit:user:42 60000 10
  2. 02

    Egy bot rohama

    A lekaparó felhasználja a burst-keretét, majd megmondják neki, mennyit kell várnia. Az elutasított kérés semmit nem változtat.

    GCRA.LIMIT ratelimit:bot:7 60000 10
  3. 03

    Elnevezett korlátozó egy csomaghoz

    Az ingyenes csomagos ügyfelek percenként 100 kérést kapnak csúszóablakon.

    RATELIMIT.CREATE free_plan 100 60000 ALGO sliding_window
  4. 04

    Súlyozott kérés

    Egy exportvégpont 20 egységbe kerül, így többet használ fel a keretből.

    RATELIMIT.CHECK free_plan customer:881 COST 20
  5. 05

    Nézze meg, mit tett a korlátozó

    Beállítások, követett kulcsok, valamint az engedélyezett és elutasított kérések összesítése.

    RATELIMIT.STATS free_plan
Hol használható

Valós helyzetek

Nyilvános API-k

Minden API-kulcs csomagonként kap korlátot, a jól viselkedő klienseknek burst-ökkel, a többieknek pontos Retry-After értékkel.

Bejelentkezési és regisztrációs űrlapok

Az IP-címenkénti és fiókonkénti próbálkozásokat korlátozzák, hogy lassítsák a hitelesítőadat-kitöltéses támadásokat.

Kimenő hívások

A partner-API-hoz vagy egy LLM-szolgáltatóhoz intézett hívásokat a kvótájuk alatt tartják a flotta minden munkavégzőjén át.

Beépítve

Amit kap

GCRA egyetlen paranccsal

Egyenletes újratöltődés burst-ökkel, atomikus ellenőrzés és frissítés, újrapróbálkozási idő elutasításkor.

GCRA.LIMITGCRA.RESET

Elnevezett korlátozók

Csúszóablak, token bucket vagy leaky bucket, egyszer létrehozva és kulcsonként ellenőrizve.

RATELIMIT.CREATERATELIMIT.CHECK

Súlyozott kérések

A költséges hívások több kérésnek számíthatnak. A GCRA.LIMIT darabszámot, a RATELIMIT.CHECK COST értéket vesz.

COST

Statisztikák

Engedélyezett és elutasított összesítések korlátozónként.

RATELIMIT.STATS

Gyakori kérdések

Kell Lua-szkript a sebességkorlátozáshoz?

Nem. Mind a GCRA.LIMIT, mind a RATELIMIT.CHECK az egész ellenőrzést egyetlen atomikus parancsként végzi.

Melyiket használjam?

A GCRA.LIMIT nem igényel beállítást, és minden csomagon működik. A RATELIMIT.* elnevezett korlátozók algoritmusválasztást és statisztikát adnak, és a Performance és a Scale csomag részei.

Mibe kerül egy elutasított kérés?

Semmibe. Az elutasított GCRA-hívás változatlanul hagyja a korlátozót, így az újrapróbálkozó klienst nem büntetik tovább.

Kapcsolódó felhasználási esetek

Próbálja ki a saját munkaterhelésén

A HotKV a Redis protokollt beszéli, így egy meglévő klienst ráirányíthat, és lefuttathatja ugyanezeket a parancsokat.