> FLOW_BACKPRESSURE // None // AP
Çok-Katmanlı Dağıtık Hız Sınırlayıcı (Token Bucket & Sliding Window)
Çok-kiracılı kotaları milisaniye-altı ek yükle zorunlu kılmak için yerel bellek token bucketlarını Redis kayan-pencere log koordinasyonuyla birleştiren hız sınırlayıcı.
Mimarî Problem ve Çözüm Hipotezi
Merkezi hız sınırlayıcılar, her API isteği uzak bir Redis gidiş-dönüşü yapmak zorunda kaldığında (3-5ms gecikme ekleyerek) tek hata noktası ve darboğaz oluşturur.
Resmi Dağıtık Sistem Garantileri
- ⚡Sub-millisecond rate check latency (<0.4ms) via local in-memory token cache
- ⚡Zero over-allocation beyond configured burst limit across distributed cluster
- ⚡Standardized HTTP 429 response headers (`Retry-After`, `X-RateLimit-Remaining`)
Ele Alınan Hata Tipleri
3 Ölçek ve Olgunluk Konfigürasyonu
Başlangıç kümesinden multi-datacenter ultra-ölçek seviyesine kadar kademeli üretim konfigürasyonları.
10,000 checks/sec
< 4ms
Redis Atomic Lua Script Rate Limiting
API Gateway calls Redis Lua script on each request.
120,000 checks/sec
< 1.2ms
Two-Tier Local Token Leases + Redis Sliding Window Log
Envoy sidecars cache batches of tokens locally; periodically sync aggregate usage with Redis Cluster.
2,000,000 checks/sec
< 0.3ms
Kernel eBPF Token Bucket Filter with Hardware Offload
Packets dropped directly at the Linux network driver level (XDP) before reaching TCP stack if IP/token is exceeded.
Altyapı Kodları: Terraform, Kubernetes & Motor Konfigürasyonları
Doğrudan üretim kümelerine uygulanabilir doğrulukta açık kaynak altyapı otomasyon manifestoları.
resource "aws_elasticache_cluster" "ratelimit_redis" {
cluster_id = "tinycto-ratelimit-redis"
engine = "redis"
node_type = "cache.m7g.xlarge"
num_cache_nodes = 1
parameter_group_name = "default.redis7"
port = 6379
}apiVersion: apps/v1
kind: Deployment
metadata:
name: envoy-ratelimit
spec:
replicas: 4
template:
spec:
containers:
- name: ratelimit
image: envoyproxy/ratelimit:v1.6.0
env:
- name: REDIS_SOCKET_TYPE
value: "tcp"
- name: REDIS_URL
value: "redis:6379"-- Redis Sliding Window Token Bucket Lua Script
local key = KEYS[1]
local limit = tonumber(ARGV[1])
local current = tonumber(redis.call('get', key) or "0")
if current + 1 > limit then
return 0 -- Rejected (429)
else
redis.call("INCRBY", key, 1)
if current == 0 then
redis.call("EXPIRE", key, 1)
end
return 1 -- Allowed
endÇok-kiracılı kotaları milisaniye-altı ek yükle zorunlu kılmak için yerel bellek token bucketlarını Redis kayan-pencere log koordinasyonuyla birleştiren hız sınırlayıcı.
Mimarî Plan Sıkça Sorulan Sorular
Çok-Katmanlı Dağıtık Hız Sınırlayıcı (Token Bucket & Sliding Window) mimarisinin CAP ve PACELC teoremleri altındaki matematiksel sınıflandırması nedir?
Çok-Katmanlı Dağıtık Hız Sınırlayıcı (Token Bucket & Sliding Window), CAP teoreminde AP ve PACELC teoreminde PA/EL olarak modellenmiştir. Ağ bölünmesi (Partition) durumunda erişilebilirlik (Availability) önceliklendirilirken, normal çalışma durumunda gecikme ile tutarlılık dengesi korunur.
Bu mimari hangi dağıtık uzlaşı protokolünü (None) kullanır ve lider seçimi nasıl işler?
Bu mimari None protokolünü kullanır. Düğümler arası durum çoğaltması (state replication) ve liderlik seçimi çoğunluk oyu (quorum) ile garanti altına alınır; bölünmüş beyin (split-brain) durumu monotonik dönem numaraları (epoch/term) ve fencing belirteçleriyle engellenir.
Bu mimari hangi dağıtık hata modlarını (Failure Modes) bertaraf eder?
Bu mimari şu kritik dağıtık sistem arızalarını ele alır: DS-FAIL-08: Thundering Herd Cache Stampede, DS-FAIL-11: Unbounded In-Flight Queue Exhaustion. Sistem veri kaybı olmadan otomatik hata devri ve durumsal yakınsama sağlar.
INITIAL ile ULTRA_SCALE seviyeleri arasındaki verim (Throughput) ve p99 gecikme farkları nelerdir?
INITIAL seviyesi 10,000 checks/sec hedefi ve < 4ms p99 gecikmesi sağlarken (API Gateway calls Redis Lua script on each request.), ULTRA_SCALE seviyesi 2,000,000 checks/sec ve < 0.3ms sunar (Packets dropped directly at the Linux network driver level (XDP) before reaching TCP stack if IP/token is exceeded.). Bileşenler: eBPF XDP Rate Limiter, Aerospike Sync, BGP Anycast Gateways.
Bu mimari Altyapı Kodu (IaC) ve motor ayarlarıyla nasıl devreye alınır?
Bu sayfada sunulan Terraform (main.tf), Kubernetes dağıtım bildirimleri (k8s-manifest.yaml) ve motor konfigürasyon parametreleri (config.properties) doğrudan üretime hazır olarak sağlanmıştır.
