Apinizer Rate Limit Mekanizmaları Karşılaştırması
Apinizer'da rate limiting etkin biçimde işlenebilmesi için kota ve throttling ayrı ayrı ele alınır:
- Kısa süreli (saniye/dakika) istek sınırlandırmalar throttling olarak ifade edilir.
- Uzun süreli (gün/ay/yıl) istek sınırlandırmalar kota olarak ifade edilir.
Kavramların genel açıklaması için Rate Limit, Throttling ve Quota Management makalesine bakabilirsiniz.

Sisteme gelen yükü kontrollü biçimde reddetmek, servisin yoğun yük altında erişilemez hale gelmesinden daha iyidir.
Apinizer üzerinde rate limit üç farklı mekanizma ile tanımlanabilir, uygulanabilir ve yönetilebilir:
API Proxy üzerinde genel veya endpoint'e özel kısıtlama
Her istemci kimliğine özel bağımsız limitler
Endpoint bazında hedefli ve granüler kurallar
Politika Tabanlı Rate Limit Nedir?
Politika tabanlı rate limit, API Proxy üzerinde tanımlanan ve özel bir koşul belirtilmediği sürece o proxy'ye gelen tüm isteklere kullanıcı ayırmaksızın uygulanan genel veya endpoint'e özel bir kısıtlamadır.
Politika tabanlı rate limit genellikle şunları içerir:
- Proxy seviyesinde tanımlanan tekil bir istek limiti
- Özel bir hedef kitle ayrımı yapılmadığı sürece tüm trafiğe eşit uygulanma
- Basit zaman penceresi tanımları (saniye/dakika/saat bazında)
- Apply By seçeneği ile IP, API key, header vb. değerler bazında ayrım yapma
- Condition ile belirli endpoint veya farklı durumlar için özel kurallar uygulayabilme
Credential Bazlı Rate Limit Nedir?
Credential bazlı rate limit, API'ye istek gönderen credential'ın (API anahtarı, token, client kimliği vb.) kendisine özel olarak tanımlanmış limit değerine göre sınırlandırılmasını sağlayan mekanizmadır. Her credential, kendi rate limit değerine karşı bağımsız olarak değerlendirilir. Credential bazlı rate limiting'in amacı API paydaşlarının oluşturduğu trafik yükünü kontrol altına almak ve sınırlandırmaktır.
Credential bazlı rate limit özellikle şunları içerir:
- Credential başına tanımlanan bağımsız istek limitleri
- Farklı müşteri veya uygulamalara farklı limit değerleri atayabilme
- Credential bazlı kullanım metriklerinin izlenebilmesi
- Abonelik/plan modeliyle doğal uyum
Rate Limit Kontrol Listesi (RLCL) Nedir?
Rate Limit Control List (RLCL), IP adresi, HTTP header, request body içeriği ve ortam değişkenleri gibi çok çeşitli parametrelere dayalı olarak rate limit kuralları tanımlamanızı sağlayan, Apinizer tarafından geliştirilmiş teknik bir mekanizmadır. Politika ve credential bazlı yaklaşımların aksine, RLCL sadece endpoint bazlı çalışır; yani her endpoint için ayrı ayrı yapılandırılması gerekir.
Tanımlanan bir RLCL birden çok API Proxy'e aynı anda uygulanabilir.
RLCL özellikle şunları içerir:
- IP, header, body ve ortam değişkeni bazında hedefli limit tanımları
- Endpoint bazlı uygulama (proxy veya credential genelinde değil, yalnızca ilgili endpoint'te geçerlidir)
- Operatör tabanlı esnek hedef kitle koşulları (eşittir, içerir, ile başlar vb.)
- Zaman penceresi tipleri (sabit veya kayan)
- Hedef kitlede olmayan isteklere karşı eylem tanımlama (engelleme veya genel kota uygulama)
Üç Mekanizma Arasındaki Temel Farklar
| Politika Tabanlı | Credential Bazlı | RLCL | |
|---|---|---|---|
| Uygulama seviyesi | API Proxy / metod (politika konumu) | Credential × API Proxy (ACL) | API + endpoint |
| Ayrım kriteri | Opsiyonel (Apply By, koşul, Detail List) | Credential kimliği | IP, header, body, credential, auth kullanıcısı vb. |
| Konfigürasyon yeri | Development → Politikalar | Identity Management → ACL | Identity Management → RLCL |
| Zaman penceresi | Throttling (sn/dk) + Quota (saat/gün/ay) | Throttling + Quota | Esnek (sn → ay) |
| Esneklik | Orta (basit → gelişmiş) | Orta | Yüksek |
Ne Zaman Hangisini Kullanmalı?
Politika tabanlı rate limit'i şu durumlarda kullanın
- Proxy'ye gelen tüm trafiği tek bir kuralla sınırlandırmak istediğinizde
- Credential veya istek içeriği bazında bir ayrım yapmanıza gerek olmadığında
- Hızlı ve düşük maliyetli bir genel koruma katmanı kurmak istediğinizde
- Sistemin ilk savunma hattını oluşturmak istediğinizde
Credential bazlı rate limit'i şu durumlarda kullanın
- Farklı müşteri veya uygulamalara farklı kullanım hakları tanımlamak istediğinizde
- Abonelik/plan yapınızı (free, pro, enterprise vb.) teknik olarak yansıtmak istediğinizde
- Credential bazlı kullanım takibi ve raporlama ihtiyacınız olduğunda
- Her istemcinin kendi API tüketimine göre sınırlandırılması gerektiğinde
RLCL'yi şu durumlarda kullanın
- Belirli bir endpoint için IP, header veya body içeriğine göre özelleştirilmiş limitler tanımlamak istediğinizde
- Belirli bir işlem tipini (örneğin toplu/batch işlemleri) diğerlerinden farklı sınırlandırmak istediğinizde
- Şüpheli IP bloklarını veya belirli davranış örüntülerini hedeflemek istediğinizde
- Teknik açıdan en hassas ve en granüler kontrol gerektiğinde
Üçünü Birlikte Nasıl Kullanabilirsiniz?
Politika tabanlı rate limit, credential bazlı rate limit ve RLCL birbirinin rakibi değil, birbirini tamamlayan katmanlardır. Aşağıda üçünü birlikte kullanmanın yararları ve örnekleri bulunmaktadır:
Katmanlı koruma: Politika tabanlı rate limit ile proxy genelinde bir üst sınır belirlerken, credential bazlı rate limit ile her müşterinin kendi kullanım hakkını, RLCL ile de belirli endpoint'lerdeki özel durumları kontrol edebilirsiniz.
Esnek iş modeli:
- Politika: Proxy'ye toplamda saniyede 10.000 istekten fazlası kabul edilmez
- Credential: Her credential kendi planına göre saniyede 50 ile 500 istek arasında sınırlandırılır
- RLCL:
/api/v1/batchendpoint'ine gelen istekler, kaynak IP veya body içeriğine bakılmaksızın saniyede 5 isteği aşamaz
Güvenlik ve operasyonel istikrar:
- Politika tabanlı rate limit, sistemin genel taşma senaryolarına karşı ilk savunma hattını oluşturur
- Credential bazlı rate limit, iş modelini ve müşteri segmentasyonunu teknik seviyede uygular
- RLCL, belirli endpoint'lerdeki özel risk veya yük senaryolarına karşı hedefli koruma sağlar
Özel durumlar için esneklik:
- Politika ve credential: Normal şartlarda her credential kendi plan limitine göre çalışır
- RLCL: Belirli bir endpoint'e, belirli bir header değeriyle veya belirli bir IP aralığından gelen istekler, credential limitinden bağımsız olarak ayrıca sınırlandırılır
Örnek Senaryo: Bir API Gateway Üzerinden Sunulan Ödeme API'si
Bir ödeme servisi API'si düşünelim:
API Proxy genelinde saniyede en fazla 5.000 istek (genel taşma koruması)
Standart müşteri credential'ları: dakikada en fazla 200 istek. Kurumsal müşteri credential'ları: dakikada en fazla 2.000 istek
/api/v1/payments/refund için aynı IP'den saniyede en fazla 3 istek. Yüksek tutarlı body istekleri için dakikada en fazla 1 istek. X-Client-Type: internal header'ına sahip istekler için endpoint bazlı limitten muafiyet
Bu yapılandırmada politika tabanlı rate limit sistemin genel taşmaya karşı korunmasını sağlarken, credential bazlı rate limit iş modelini ve müşteri segmentasyonunu yansıtır; RLCL ise yüksek riskli işlemlerin (örneğin iade veya yüksek tutarlı ödeme istekleri) endpoint seviyesinde ayrıca ve daha sıkı kontrol edilmesini sağlar.
Sonuç
Politika tabanlı rate limit, credential bazlı rate limit ve Rate Limit Kontrol Listesi (RLCL), API trafiğini kontrol etmenin farklı ancak birbirini tamamlayan yollarıdır. Politika tabanlı rate limit sistemin genel koruma katmanını oluştururken, credential bazlı rate limit iş modelini ve müşteri segmentasyonunu teknik seviyede uygular; RLCL ise endpoint bazında en hassas ve en esnek kontrolü sağlar. İdeal bir rate limiting stratejisinde üç yaklaşım da kendi güçlü yönleriyle birbirini tamamlayacak şekilde bir arada kullanılmalıdır.
Apinizer'ın sunduğu bu üç mekanizma, tek bir kural yerine katmanlı bir koruma modeli kurmanıza olanak tanır. Bu sayede hem sistem genelinde bir üst sınır belirleyebilir, hem her müşteriye kendi planına uygun bir kullanım hakkı tanımlayabilir, hem de belirli endpoint'lerdeki özel risk senaryolarına karşı hedefli önlemler alabilirsiniz.