GH GambleHub

Oran limitleri ve kotalar

Hız limitleri ve kotalar, paylaşılan kaynaklara olan talebi yönetmenin temel mekaniğidir: CPU, ağ, veritabanı, kuyruklar, harici API'ler. Amaç adalet, SLO'ların öngörülebilirliği ve patlamalar, kötüye kullanım ve "gürültülü komşu'dan korunmadır.


1) Temel kavramlar

Hız sınırı - taleplerin/işlemlerin yoğunluğunu sınırlayın (req/s, msg/min, bytes/sn).
Patlama - ortalama oran üzerinde izin verilen kısa süreli patlama.
Kota - zaman penceresi başına hacim sınırı (belgeler/gün, GB/ay).
Eşzamanlılık sınırı - eşzamanlı işlemlerin kısıtlanması (eşzamanlı istekler/işler).
Kapsam - kapsam: kiracı başına, kullanıcı başına, belirteç başına, uç nokta başına, IP başına, bölge başına, özellik başına.


2) Sınırlayıcı algoritmalar

2. 1 Belirteç Kovası

Parametreler: 'Oran' (belirteçler/sn), 'patlama' (kova boyutu).
"Kredi'gibi işler: birikmiş belirteçler kısa zirvelere izin verir.
Harici API'ler ve kullanıcı istekleri için uygundur.

2. 2 Sızdıran Kova

Akışı sabit bir hızda düzgün bir şekilde "kanar".
Trafiği hassas arka uçlara yumuşatmak için iyidir.

2. 3 Sabit/Sürgülü Pencere

Sabit pencere: basit ama "pencere değiştirmeye" karşı savunmasız.
Sürgülü pencere: daha doğru, ancak hesaplama açısından daha pahalı.

2. 4 GCRA (Jenerik Hücre Hızı Algoritması)

Sanal varış zamanı açısından Token Bucket eşdeğeri.
Dağıtılmış sınırlayıcılar için doğru ve kararlı (daha az çelişkili durum).

2. 5 Eşzamanlılık Sınırları

Eşzamanlı işlemleri sınırlamak.
İplik/bağlantı havuzlarının tükenmesine ve hat başı engellemeye karşı korur.


3) Sınırların uygulanacağı yer

Sınırda (L7/API ağ geçidi): ana bariyer, hızlı arıza (429/503), ucuz çekler.
İç hizmetler: ağır işlemler için ek kapaklar (ihracat, raporlar, dönüşümler).
Dış sistemlere çıkışta: üçüncü taraflar için bireysel limitler (ceza önleme).
Kuyruklarda/işçilerde: paylaşılan havuzlara adalet.


4) Kapsamlar ve öncelikler (çok kiracılı)

Иерархия: Global> Bölge> Kiracı/Plan> Kullanıcı/Token> Uç Nokta/Özellik> IP/Cihaz.
Öncelik bilincinde: VIP/Enterprise daha fazla 'patlama've ağırlık elde eder, ancak genel SLO'ları kırmaz.
Sınır bileşimi: toplam tolerans ='min (global, bölgesel, kiracı, kullanıcı, uç nokta) '.


5) Hacim kotaları

Günlük/aylık kotalar: belgeler/gün, GB/ay, mesajlar/dak.
Yumuşak/sert eşikler: Uyarılar (%80/90) ve sert durdurma.
Roll-up: nesnelere göre muhasebe (tablolar, dosyalar, olaylar) ve faturalandırmaya "para çekme".


6) Dağıtılmış sınırlayıcılar

Gereksinimler: düşük gecikme süresi, tutarlılık, hata toleransı, yatay ölçeklendirme.

Yerel + olasılıksal senkronizasyon: yerel parça kovaları + periyodik senkronizasyon.
Merkezi mağaza: Redis/KeyDB/Memcached с LUA/atomic ops (INCR/PEXPIRE).
Sharding: düzgün dağılımlı 'limit: {scope}: {id}: {window}' formunun anahtarları.
Saat eğriltme: "gerçeği" sınırlayıcı sunucuda saklayın, istemcilerde değil.
Idempotency: Idempotency-Keys yanlış ücretleri azaltır.


7) Kötüye kullanım ve koruma

Genel uç noktalar için Per-IP + cihaz parmak izi.
İş Kanıtı/anomalilerde CAPTCHA.
UX daha önemli olduğunda tam başarısızlık yerine yavaşlama (kısma) (arama komutları).
Uyarlanabilir sınırlar: Olaylar/pahalı bozulmalar için eşiklerin dinamik olarak azaltılması.


8) Müşteri davranışı ve protokolü

Kodlar: '429 Çok Fazla İstek' (oran), '403' (kota/plan aşıldı), '503' (koruyucu bozulma).

En iyi uygulama:
  • 'Retry-After: ' - when to try again.
'RateLimit-' ailesi (IETF):
  • 'RateLimit-Limit: ; w = '
  • 'RateLimit-Kalan: '
  • 'RateLimit-Reset: '
  • Backoff: üstel + jitter (tam jitter, eşit jitter).
  • Idempotency: 'Idempotency-Key' başlığı ve güvenli işlemlerin tekrarlanabilirliği.
  • Zaman aşımları ve iptaller: Sınırlamaları "yakalamamak" için askıya alınan istekleri doğru şekilde kesintiye uğratın.

9) Gözlemlenebilirlik ve test

Теги: 'tenant _ id', 'plan', 'user _ id', 'endpoint', 'region', 'decision' (allow/deny), 'reason' (kota/oran/eşzamanlılık).
Metrikler: iş hacmi, 429/403/503 hata oranı, p95/p99 sınırlayıcı gecikmesi, anahtar önbellek isabet oranı, plan tahsisi.
Denetim günlükleri: blokların nedenleri, üst "gürültülü" anahtarlar.
Testler: yük profilleri "saw/burst/plateau", kaos - Redis/shard hatası, saat senkronizasyonu.


10) Faturalandırma ile entegrasyon

Kullanım sayaçları sınırda toplanır, idempotency ile toplu olarak (her N dakikada bir) toplanır.
Plan özeti: aşırı harcama - aşırı ücret veya planı geçici olarak artırma.
Tutarsızlıklar: uzlaşma kullanımı vs fatura; Deltayı uyarıyor.


11) İçeride adalet (kuyruklar, işçiler)

Ağırlıklı Adil Kuyruk/DRR: Plan ağırlığına göre kiracılara yuva tahsis etme.
Kiracı başına işçi havuzları: VIP/gürültülü katı izolasyon.
Kabul kontrolü: kotalar tükenirse uygulamadan önce başarısızlık; Kuyruklar kabarmaz.
Eşzamanlılık üzerindeki büyük harfler: Eşzamanlı ağır jabları sınırlayın.


12) Tipik plan profilleri (örnek)

yaml plans:
starter:
rate: 50  # req/s burst: 100 concurrency: 20 quotas:
daily_requests: 100_000 monthly_gb_egress: 50 business:
rate: 200 burst: 400 concurrency: 100 quotas:
daily_requests: 1_000_000 monthly_gb_egress: 500 enterprise:
rate: 1000 burst: 2000 concurrency: 500 quotas:
daily_requests: 10_000_000 monthly_gb_egress: 5000

13) Mimari referans (sözel şema)

1. Kenar/API ağ geçidi: TLS - ayıklama bağlamı (kiracı/plan) - sınırları/kotaları kontrol edin - RateLimit başlıklarını yerleştirin - log/trace.
2. Politika Motoru: Öncelik kuralları (VIP), uyarlanabilir eşikler.
3. Sınırlayıcı Mağaza: Redis/KeyDB (atomik ops, LUA), anahtar parçalama, çoğaltma.
4. Hizmetler: Ağır operasyonlar için ikincil limit ve kapaklar; idempotency; WFQ/DRR ile kuyruklar.
5. Kullanım/Faturalandırma: toplama, toplama, fatura, eşiklere göre uyarılar.
6. Gözlemlenebilirlik: Etiketli metrikler/günlükler/izler, kiracı başına gösterge panoları.


14) Satış öncesi kontrol listesi

  • Limit kapsamları (kiracı/kullanıcı/belirteç/uç nokta/IP) ve hiyerarşileri tanımlanmıştır.
  • Seçilen algoritma (Token Bucket/GCRA) ve 'rate/burst' parametreleri.
  • Ağır operasyonlar için eşzamanlılık kapakları ve kabul kontrolü uygulandı.
  • 'RateLimit-'ve' Retry-After 'başlıkları dahil; Müşteriler destek backoff + jitter.
  • Sınırlayıcı dağıtılmış ve hata toleranslıdır (parçalar, çoğaltma, bozulma).
  • Kullanım-toplama idempotent; Faturalandırma ile paket, aşırı harcama için uyarılar.
  • Gözlemlenebilirlik: metrikler/yollar/etiketli günlükler, üst "gürültülü" tuşlar, değiştiriciler.
  • Testler: patlamalar, "testere", stor arızası, saat eğriliği, soğuk başlangıç.
  • Müşteri belgeleri: plan limitleri, 429/Retry-After örnekler, en iyi uygulamaları yeniden paylaşın.
  • Dışlama Politikası: Sınırların geçici olarak nasıl ve ne zaman yükseltileceği.

15) Tipik hatalar

Kiracı başına/uç nokta başına olmadan genel sınır - "gürültülü komşu'tüm SLO'ları bozar.
'Patlama' eksikliği: UX kısa patlamalarda acı çekiyor.
Sadece sabit bir pencere kullanarak - "pencere sınırında çift vuruş".
Idempotency yoktur ve jitter ile retrays - tekrarların fırtınası.
Sınırlamalar yalnızca sınırda, hizmetlerde/kuyruklarda kapaklar olmadan - dahili "trafik sıkışıklığı".
Yanıtlardaki sınırların reddedilmemesi (hayır 'Retry-After', 'RateLimit-') - istemciler uyum sağlamaz.
Sınırlayıcı durumun OLTP veritabanında saklanması - yüksek gecikme ve sıcak kilitler.


16) Hızlı strateji seçimi

Tepe noktaları olan genel API'ler: Belirteç Kovası + büyük 'patlama', RateLimit - üstbilgiler, CDN/kenar önbelleği.
Dahili ağır jablar: eşzamanlılık kapakları + WFQ/DRR, kabul kontrolü.
Üçüncü taraflarla entegrasyon: ayrı çıkış limitleri, arabelleğe alma/geri alma.
SaaS çok kiracılı: limit hiyerarşisi (global - kiracı - kullanıcı - uç nokta), VIP önceliklendirme, aylık kotalar.


Sonuç

İyi oran limitleri ve kotalar, platform ile müşteri arasında bir sistem sözleşmesidir: kaynakların dürüst bir şekilde paylaşılması, ani artışlara karşı direnç, öngörülebilir SLO'lar ve şeffaf faturalandırma. Algoritmaları birleştirin (Token/GCRA + eşzamanlılık sınırları), bir osprey hiyerarşisi uygulayın, net başlıklar ve metrikler verin ve gerçek trafik profilleri altındaki şemaları düzenli olarak kontrol edin - bu şekilde platform agresif yük artışında bile sabit kalacaktır.

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.