GH GambleHub

Hız Sınırları ve Yük Kontrolü

TL; DR

Güvenilir bir devre, çeşitli seviyelerde limitlerin ve kotaların bir birleşimidir (kenar, BFF, servis), adil kaynak tahsisi (kiracı/anahtar/rota başına), SLO adaptif kısma ve sessiz zaman aşımları yerine geri yansıtıcı. "Hız" için jeton/sızdıran kova, muhasebe kotaları için kayan pencere, ağır işlemler için rekabetçi limitler, bozulmada dinamik kısma ve kırılgan yukarı akışa devre kesici kullanın. Her şey gözlem altında ve oyun kitaplarıyla birlikte.

1) Neden iGaming/fintech'te sınırlar

SLO ve sürdürülebilirlik: retray çığlara, turnuva/etkinlik zirvelerine, ödeme artışlarına karşı koruma.
Adalet: Bir kiracı veya ortak tüm bütçeyi "emmez".
Kötüye kullanım karşıtı/botlar: giriş/kayıt, spam, dizin kazıma.
Maliyet: Pahalı aramaların sınırlandırılması (KYC, raporlar, toplamlar).
Uyum/adil kullanım: Sözleşmelerde resmi "adil kullanım" kotaları.

2) Taksonomiyi sınırlayın

KategoriCurAnahtar örnekleri
Oran (hız)Kararlı RPS, patlama koruması'api _ key', 'kiracı', 'rota', 'ülke', 'BINN'
Kota (muhasebe)Pahalı kaynaklar için gün/ay'tenant-day', 'partner-month', 'report-type'
EşzamanlıEşzamanlı ağır işlemleri sınırla'paout: create', 'export: csv', 'recalct'
Maliyet tabanlıKarmaşık/pahalı sorgular (GraphQL/arama)"karmaşıklık", yanıt boyutu
AdaptifSLO/gecikme/hatalara tepkiglobal/rota başına
Giriş/çıkışWebhooks/giden çağrıları alma'webhook-receiver', 'psp-outbound'

3) Algoritmalar ve nereye başvurulacağı

3. 1 Belirteç Kovası (varsayılan)

Parametreler: 'Oran' (belirteçler/sn), 'patlama' (maksimum marj).
API okuma, ödeme/durum, BFF için harika.
Boş bir kova ile - 429 + 'Retry-After'.

3. 2 Sızdıran Kova (ortalama)

RPS'nin garantili "yıkımı", işçileri puanlamamak için webhooks için yararlıdır.

3. 3 Sabit Pencere vs Sürgülü Pencere

Sabit - basit, ama "sınırlar"; Sürgülü - pencerede adil muhasebe (min/saat/gün).
Apply Sözleşme kotaları için kayar.

3. 4 Eşzamanlı sınırlar

Aynı anda aktif görevlerin sınırı. İhracat/raporlar, KYC paketleri, yeniden işleme için idealdir.
Eksiklik durumunda - 429/503 + kuyruk/yoklama.

3. 5 Maliyet/Karmaşıklık Sınırlayıcı

GraphQL/search: derinlik/kardinalite/uzantılarla "maliyeti" göz önünde bulundurun.
"Pahalı" isteklerin kırpılması/bozulması, bir ipucu ile yanıt.

4) Boyutlandırma tuşları

Kiracı başına (çoklu kiralama, özkaynak),

per-api_key/client_id (ortaklar),

Rota başına (daha ciddi kritik mutasyonlar),

Kullanıcı başına/cihaz/IP/ASN/geo

Per-BIN/ülke (ödeme yöntemleri, ihraççıların ve sağlayıcıların korunması),

Yöntem başına (GET daha yumuşak, POST/PUT daha sıkı).

Kompozisyon: ana anahtar + "risk çarpanı" (yeni hesap, TOR/proxy, yüksek ters ibraz riski).

5) SLO-adaptif kısma

SLO tehlikede olduğunda dinamik kısmayı etkinleştirin:
  • Tetikleyiciler: 'P95 latency↑', '5xx↑', 'kuyruk len↑', 'CPU/IO doygunluğu'.
  • Eylemler: Daha düşük hız/patlama, outlier-ejection etkinleştirin, "pahalı" rotaları kesin, geçici bozulma (ağır alanlar/toplamlar olmadan).
  • Geri dönüş: N ardışık aralıkların sinyallerini normalleştirirken adım adım (25 - 50 - %100).

6) Mimari entegrasyon

API Ağ Geçidi (kenar): birincil oran/kotalar, coğrafi/ASN, HMAC/JWT doğrulama, 429/' Retry-After '.
BFF/Service Mesh: ince rota başına/kiracı başına limitler, eşzamanlı limitler, yukarı akış için devre kesiciler.
Hizmetin içinde: Ağır operasyonlar için semaforlar, kuyruklarda bir sırt çantası, bağlı bir boyutta "çalışma havuzları".
Webhooks: sızdıran kova ve retray arabelleği ile ayrı bir giriş uç noktası.

7) Konfigürasyonlar (parçalar)

Kong/NGINX tarzı (hız + patlama):
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 }
Elçi (devre + aykırı + oran):
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% }
Eşzamanlı sınırlar (sözde):
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 maliyet koruması (fikir):
pseudo cost = sum(weight(field) cardinality(arg))
if cost > tenant. budget then reject(429,"query too expensive")

8) Farklı kanallar için politikalar

REST

GET - daha yumuşak, POST/PATCH/DELETE - daha sıkı; "idempotent" durumları/çekleri geri çekilebilir.
Ödemeler için: Kullanıcı/kiracı/BIN/ülke başına 'doğrulama/yakalama/geri ödeme' sınırları.

GraphQL

Derinlik/karmaşıklık sınırları, kalıcı/beyaz listeye alınmış sorgular, takma adlarda sınırlamalar.

WebSocket/SSE

Sıklık sınırı 'abone olun/abonelikten çıkın', konu sayısını sınırlayın, olayların boyutunu kontrol edin ve 'polisy _ disconnect' taştığında kuyruk gönderin.

Webhooks

Resepsiyonda sızdıran kova, gönderen başına kotalar, ölü harf kuyruğu, deterministik 2xx/429.

9) Müşteri geri bildirimi

Her zaman açık bir 429'u başlıklarla döndürün:
  • 'Retry-After: '
  • 'X-RateLimit-Limit/Kalan/Yeniden'
  • Kotalar için - 403 kodu ile 'kontenjan _ aşıldı've plan yükseltmesine bir bağlantı.
  • Dokümantasyon: OpenAPI/SDL + "Adil Kullanım" sayfalarındaki sınırlar.

10) İzleme ve gösterge panoları

Metrikler:
  • Limitlere ulaşıyor: 'oranı. limit. Tuşlara/yönlendirmelere/kiracılara çarptı.
  • 429/503 доля, gecikme p50/p95/p99, hata oranı, kuyruk uzunluğu, açık devreler.
  • Adil paylaşım: tüketimdeki en iyi kiracılar, "zorba dedektörü".
  • Webhooks: resepsiyon/retrai, bırakma oranı, orta gecikme.
SLO kriterleri:
  • 429, toplam RPS'nin %1-3'ünden fazla değildir (botlar olmadan).
  • P95 sınırlayıcı katkı maddesi ≤ kenar başına 5-10 ms.
  • Bozulma kurtarma süresi ≤ 10 dakika.
SQL örneği (anahtar dilimi):
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) Olay oyun kitapları

Retray storm (upstream fall): Küresel yavaşlatmayı açın, geri almayı kaldırın, devre kesiciyi açın, zaman aşımları yerine "hızlı hataları" döndürün.
Bot saldırısı/kazıma: IP/ASN/geo tarafından sert kapak, WAF/JS meydan okumasını etkinleştir, dizinleri/aramayı kısıtla.
Turnuva/etkinlik zirvesi: okuma sınırlarını önceden yükseltmek, "pahalı alanları" düşürmek, önbellek/denormalizasyonu sağlamak.
PSP'den webhook'lar eklendi: geçici sızdıran kova, kritik tiplerin önceliklendirilmesi, dead-letter ve retray'i genişletin.

12) Test ve UAT

Yük: RPS merdiveni, boncuklar × normalin 10'u.
Adalet: 1 "açgözlü" kiracının öykünmesi - küresel bütçenin % X'inden fazla değil.
Bozulma: SLO adaptasyonu sınırları azaltır ve koridorda p95 tutar.
Sınır durumları: Pencere değişimi (min - chas), saat sallama (saat eğriltme), Redis ölçeklendirme/anahtar parçalama.
Sözleşme: 429 ve Retry-After başlıkları mevcut, SDK doğru şekilde yedekleniyor.

13) Limitler için depolama

Yerel sınırlar için bellek içi (küçük kümeler).
Redis/Memcached for distributed (Atomicity için Lua betikleri).
Anahtarları hash ile parçalama; Pencereler altında TTL; önbellek kaybı için yedek metrik.
Idempotency: sınırlayıcı, idempotent tekrarlanan çağrıları kırmamalıdır (istek anahtarına göre muhasebe).

14) Yönetişim

Sınırlamalar kataloğu: sahibi kim, hangi anahtarlar/eşik/rasyonlu.
Hızlı anahtarlar için özellik bayrakları (kriz modu).
Sözleşme kotalarındaki değişiklikler için sürüm politikaları ve RFC süreci.
Optimal eşiklerin seçimi üzerine A/B deneyleri.

15) Anti-desenler

"Tüm API'ler için" global bir sınır.
Sadece sabit pencereler - "kenar" atlar.
Geri bildirim olmadan sınırlama ('Retry-After'/başlıkları yok).
Hızlı 429/503 yerine sessiz zaman aşımları.
Kiracı başına adil paylaşım eksikliği - bir müşteri geri kalanını boğar.
GraphQL/karmaşıklık arama koruması yok.
Eşzamanlı korumada sıfırlar - DB/PSP "elektrikli süpürge".

16) Mini hile sayfası seçimi

Varsayılan değer, kiracı + rota başına belirteç kovasıdır (oran + patlama).
Para/raporlara göre kotalar: sürgülü pencere gün/ay.
Ağır işlemler: eşzamanlı sınırlar + kuyruk.
GraphQL/поиск: karmaşıklık bütçeleri + ısrarlı sorgular.
WS/webhooks: sızdıran kova + geri basınç.
Кризис: dinamik kısma + devre kesici + bozunma.

Özet

Yük kontrolü çok seviyeli bir disiplindir: doğru algoritmalar (kova/pencere/rekabet gücü), adil limit anahtarları, SLO adaptasyonu ve şeffaf geri bildirim. Sınırları ağ geçidi/mesh/servislere dikerek, GraphQL/WS/webhook'ları profil politikalarıyla donatarak ve gözlemlenebilirliği playbook'larla birleştirerek, zirve olaylarını ve diğer insanların başarısızlıklarını kontrollü durumlara dönüştürürsünüz - çökmeler, kesintili ödemeler ve dönüşüm düşüşleri olmadan.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.