GH GambleHub

Rate Limits we ýük gözegçiligi

TL; DR

Ygtybarly kontury - birnäçe derejedäki (edge → BFF → hyzmat) çäkleriň we kwotalaryň utgaşmasy, çeşmeleriň adalatly paýlanmagy (per-tenant/açar/rout), SLO-uýgunlaşdyrylan trottling we sessiz wagtlaryň ýerine bekpreser. "Tizlik" üçin token/leaky bucket, buhgalteriýa kwotalary üçin süýşýän penjire, agyr amallar üçin bäsdeşlik çäkleri, zaýalananda dynamic throttling we gowşak akymlara circuit-breaker ulanyň. Hemme zat gözegçilik astynda we pleýbuklar bilen.

1) Näme üçin iGaming/fintech-de çäklendirmeler

SLO we durnuklylyk: retraý göçlerinden, ýaryşlaryň/ewentleriň iň ýokary derejelerinden, tölegleriň köpelmeginden goramak.
Adalat: bir tenant ýa-da hyzmatdaş tutuş býudjeti "sormaýar".
Antiabuse/botlar: login/hasaba alyş, spam, kataloglary syzmak.
Bahasy: gymmat jaňlaryň öňüni almak (KYC, hasabatlar, agregasiýalar).
Ylalaşyk/ynsaply peýdalanmak: şertnamalarda resmi "fair use" kwotalary.

2) Çäkleriň taksonomiýasy

KategoriýaNäme üçinAçar mysallary
Rate (tizlik)Durnukly RPS, burst goragy`api_key`, `tenant`, `route`, `country`, `BIN`
QuotaGymmat serişdeler boýunça gije-gündiz/aý`tenant-day`, `partner-month`, `report-type`
ConcurrentParalel agyr amallary çäklendirmek`payout:create`, `export:csv`, `recalc`
Cost-basedÇylşyrymly/gymmat soraglar (GraphQL/gözleg)"çylşyrymlylygy", jogap ölçegi
AdaptiveSLO/gizlinlik/ýalňyşlyklara reaksiýaglobal/per-rout
Ingress/egressWebhook Kabul/Gidýän Jaňlar`webhook-receiver`, `psp-outbound`

3) Algoritmler we nirede ulanmak

3. 1 Token Bucket (adaty)

Parametrler: 'rate' (bellikler/sek), 'burst' (iň ýokary ätiýaçlyk).
API okamak, tölemek/statuslar, BFF üçin ajaýyp.
Boş baket bilen → 429 + 'Retry-After'.

3. 2 Leaky Bucket (orta)

RPS-iň kepillendirilen "ýykylmagy" webhuklar üçin peýdaly.

3. 3 Fixed Window vs Sliding Window

Fixed - ýönekeý, ýöne "serhetler"; Sliding - penjirede dogruçyl hasap (min/sagat/gün).
Şertnama kwotalary üçin Sliding ulanyň.

3. 4 Concurrent Limits

Bir wagtyň özünde işjeň meseleleriň çägi. Eksport/hasabat, KYC-paketleri, gaýtadan işlemek üçin amatly.
Ýetmezçilik edilende - 429/503 + nobat/polling.

3. 5 Cost/Complexity Limiter

GraphQL/gözleg: çuňlugy/kardinallygy/giňelmegi boýunça "bahany" hasaplaýarys.
"Gymmat" haýyşlaryň kesilmegi/zaýalanmagy, yşarat bilen jogap.

4) Çäklendirme açarlary (dimensioning)

per-tenant (köp kärende, adalat),

per-api_key/client_id (hyzmatdaşlar),

per-route (has agyr mutasiýa),

per-user/device/IP/ASN/geo (antibot/anti-skrep),

per-BIN/country (töleg usullary, emitentleri we üpjün edijileri goramak),

per-method (GET has ýumşak, POST/PUT has berk).

Kompozisiýa: esasy açar + "töwekgelçilik multiplikatory" (täze hasap, TOR/proxy, ýokary chargeback-töwekgelçilik).

5) SLO-uýgunlaşdyrylan trottling

SLO howp astynda dynamic throttling-i açyň:
  • Triggerler: 'p95 latency ↑', '5xx ↑', 'queue len ↑', 'CPU/IO saturation'.
  • Hereketler: rate/burst azaltmak, outlier-ejection açmak, "gymmat" routes kesmek, wagtlaýyn degrade (agyr meýdanlar/agregasiýalar bolmazdan).
  • Yzyna gaýtarmak: yzly-yzyna N aralyk signallary kadalaşanda (25 → 50 → 100%).

6) Arhitektura integrasiýa

API Gateway (edge): ilkinji rate/quotas, geo/ASN, HMAC/JWT-tassyklama, 429/' Retry-After '.
BFF/Service Mesh: inçe per-route/per-tenant limitleri, concurrent-limits, circuit-breakers apstrimlere.
Hyzmatyň içinde: agyr amallar üçin semaforlar, nobatlardaky bekpreşer, bound ölçegli "iş howuzlary".
Webhuke: leaky bucket we retraý buferi bolan aýratyn ingress-endpoint.

7) Konfigurasiýalar (bölekler)

Kong / NGINX-style (rate + burst):
yaml plugins:
- name: rate-limiting config:
policy: local minute: 600    # 10 rps limit_by: consumer fault_tolerant: true
- name: response-ratelimiting config:
limits:
heavy: { minute: 60 }
Envoy (circuit + outlier + rate):
yaml circuit_breakers:
thresholds: { max_connections: 1000, max_requests: 800 }
outlier_detection:
consecutive_5xx: 5 interval: 5s base_ejection_time: 30s http_filters:
- name: envoy. filters. http. local_ratelimit typed_config:
token_bucket: { max_tokens: 100, tokens_per_fill: 100, fill_interval: 1s }
filter_enabled: { default_value: 100% }
filter_enforced: { default_value: 100% }
Concurrent-limits (psevdo):
pseudo sema = Semaphore(MAX_ACTIVE_EXPORTS_PER_TENANT)
if! sema. tryAcquire(timeout=100ms) then return 429 with retry_after=rand(1..5)s process()
sema. release()
GraphQL cost guard (pikir):
pseudo cost = sum(weight(field) cardinality(arg))
if cost > tenant. budget then reject(429,"query too expensive")

8) Dürli kanallar üçin syýasatlar

REST

GET - has ýumşak, POST/PATCH/DELETE - has berk; "idempotent" statuslary/barlaglary yzyna gaýtaryp bolýar.
Tölegler üçin: "auth/capture/refund 'per-user/tenant/BIN/ýurt.

GraphQL

Depth/complexity caps, persisted/whitelisted queries, "alias" çäkleri.

WebSocket/SSE

Ýygylyk çäkleri 'subscribe/unsubscribe', topikleriň sanyna kapp, wakalaryň ululygyna gözegçilik we send-queue → 'policy _ disconnect' dolanda.

Webhuklar

Leaky bucket kabul edilende, per-sender kwotalar, dead-letter nobat, determinirlenen 2xx/429.

9) Müşderilere seslenme

Elmydama aç-açan 429 sözbaşy bilen yzyna gaýtaryň:
  • `Retry-After: `
  • `X-RateLimit-Limit/Remaining/Reset`
  • Kwotalar üçin - 403 "quota _ exceeded" kody we meýilnamany täzelemäge baglanyşygy bilen.
  • Resminamalar: OpenAPI/SDL + "Fair Use" sahypasyndaky çäkler.

10) Gözegçilik we daşbordlar

Metrikler:
  • Çäkleriň hitleri: 'rate. limit. Açarlar/routler/tenantlar boýunça hit '.
  • 429/503 доля, latency p50/p95/p99, error rate, queue length, open circuits.
  • Fair-share: "bully detector".
  • Webhuklar: kabul/retrai, drop-rate, orta lag.
SLO görkezmeleri:
  • 429 umumy RPS-iň 1-3% -inden köp bolmaly däldir (botsyz).
  • p95 çäklendiriji goşundy ≤ edge-de 5-10 ms.
  • Pese gaçandan soň dikeldiş wagty ≤ 10 minut.
SQL mysaly (açar kesmek):
sql
SELECT ts::date d, tenant, route,
SUM(hits) AS limit_hits,
SUM(total) AS total_calls,
SUM(hits)::decimal/NULLIF(SUM(total),0) AS hit_rate
FROM ratelimit_stats
GROUP BY 1,2,3
ORDER BY d DESC, hit_rate DESC;

11) Wakalaryň pleýbuklary

Retraý tupany: Global throttling-i açyň, backoff-i galdyryň, circuit-breaker-i açyň, wagt nokatlarynyň ýerine "çalt ýalňyşlyklary" yzyna gaýtaryň.
Bot-hüjüm/slaýping: IP/ASN/geo boýunça gaty gapak, WAF/JS-çagyryşy açyň, kataloglary/gözlegleri çäklendiriň.
Ýaryşyň/ewentiň iň ýokary derejesi: okamagyň çäklerini öňüni almak, "gymmat meýdanlary" azaltmak, kesh/denormalizasiýany goşmak.
PSP-den webhuklary boşatmak: wagtlaýyn leaky bucket, kritiki görnüşleriň ileri tutulmagy, dead-letter we retraini giňeltmek.

12) Synag we UAT

Ýüklemek: RPS basgançak, burst × kadadan 10.
Adalat: 1 "açgöz" tenantyň emulýasiýasy - global býudjetiň X% -inden köp bolmaly däldir.
Pese gaçmak: SLO-uýgunlaşma çäkleri azaldýar we p95 koridorda saklaýar.
Serhet ýagdaýlary: penjiräniň üýtgemegi (min → sagat), sagadyň titremesi (clock skew), Redis masştaby/açar çardagy.
Şertnama: 429 we Retry-After sözbaşylary bar, SDK dogry arka offit.

13) Çäkler üçin ammar

Lokal çäkler üçin In-memory (kiçi toparlar).
Paýlanan üçin Redis/Memcached (Atom üçin Lua skriptleri).
Açarlary kesmek; Penjireleriň aşagyndaky TTL; keş ýitirmek üçin ekap metrika.
Idempotency: limiter idempotent gaýtalanýan çagyryşlary bozmaly däldir (soragyň açary boýunça hasap).

14) Syýasaty dolandyrmak (Governance)

Çäklendirmeleriň katalogy: kimiň eýesi, haýsy açarlar/bosagasy/rasional.
Çalt geçiş üçin feature-flags (crisis mode).
Şertnamalaýyn kwotalary üýtgetmek üçin syýasatlary we RFC-prosesi wersiýalaşdyrmak.
A/B optimal çäkleri saýlamak boýunça synaglar.

15) Anti-patternler

"Ähli API-ler üçin" global bir çäk.
Diňe kesgitlenen penjireler → "Gyra" at çapyşyklary.
Seslenmesiz çäk (ýok 'Retry-After '/headers).
Çalt wagtlaryň ýerine sessiz wagt-autlar 429/503.
per-tenant fair-share ýoklugy - bir müşderi beýlekileri bogup öldürýär.
GraphQL/gözleg goragy ýok.
Nullar concurrent-guard → "tozan sorujy" DD/PSP.

16) Saýlawyň kiçi şpargalkasy

Variant: token bucket (rate + burst) per-tenant + route.
Pul/hasabat boýunça kwotalar: sliding window gün/aý.
Agyr amallar: concurrent-limits + nobat.
GraphQL/поиск: complexity-budgets + persisted queries.
WS/webhuklar: leaky bucket + backpressure.
Кризис: dynamic throttling + circuit-breaker + degrade.

Gysgaça maglumat

Ýüklere gözegçilik etmek köp derejeli düzgün-nyzam: dogry algoritmler (bucket/penjire/bäsdeşlik), adalatly çäklendirme açarlary, SLO-uýgunlaşma we aç-açan seslenme. Gateway/mesh/hyzmatlara çäklendirmeler girizip, GraphQL/WS/webhuklary ýöriteleşdirilen syýasatlar bilen ýaraglandyryp we playbuklar bilen syn etmek arkaly, iň ýokary wakalary we beýleki adamlaryň şowsuzlyklaryny dolandyrylýan ýagdaýlara öwürýärsiňiz - boýag, tölegler we öwrülişikler bolmazdan.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.