Documentation Index
Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
Use this file to discover all available pages before exploring further.
Önbellek Bileşeni Kavramı
Performans Artışı
Backend Yükü
Yüksek Erişilebilirlik
Maliyet Tasarrufu
Önbellek Bileşeni Türleri
Local Cache
Konfigürasyon Cache
Konfigürasyon Cache
- API Proxy konfigürasyonları
- Policy tanımları
- Routing bilgileri
- Metadata bilgileri
Token Cache
Token Cache
- OAuth2/JWT token’ları
- Token validation sonuçları
- User session bilgileri
Response Cache
Response Cache
- API response’ları
- Cache key bazlı saklama
- TTL (Time To Live) yönetimi
- Local veya distributed olarak yapılandırılabilir
Distributed Cache (Hazelcast)
Hazelcast
- Multi-node support
- High availability
- Yönetim ve izleme Apinizer’da yapılabilir
- Gateway pod’larından bağımsız namespace’lerde çalışabilir
Paylaşılan Durum
- Throttling verileri
- Quota verileri
- Paylaşılan durum bilgileri
- Cross-namespace erişim desteği
Response Cache
- Local response cache: Hazelcast kullanılmaz
- Distributed response cache: Hazelcast kullanılır
Cache Invalidation
- Otomatik invalidation
- Event-based invalidation
- Pattern-based invalidation
http://cache-http-service.apinizer-cache.svc.cluster.local:8090). Bu, daha esnek bir altyapı yönetimi sağlar ve Gateway ve Cache iş yüklerini ayırmanıza olanak tanır. Cache Server yapılandırması için Dağıtık Cache sayfasına bakın.Önbellek Stratejileri
Cache-Aside (Lazy Loading)
- Cache’de ara
- Bulunamazsa backend’den al
- Cache’e kaydet
- İstemciye döndür
Write-Through
- Backend’e yaz
- Cache’e yaz
- İstemciye döndür
Write-Back (Write-Behind)
- Cache’e yaz
- İstemciye döndür
- Asenkron olarak backend’e yaz
Önbellek Yapılandırması
Cache Key Stratejisi
URL Bazlı
GET /api/v1/products → Cache Key: /api/v1/productsQuery Parametreli
GET /api/v1/products?category=electronics → Cache Key: /api/v1/products?category=electronicsHeader Bazlı
Custom Key
Cache TTL (Time To Live)
Sabit TTL
Sabit TTL
- Belirli bir süre için cache’de tutma
- Örnek: 5 dakika, 1 saat
Dinamik TTL
Dinamik TTL
- Response header’larına göre TTL
- Cache-Control header’ı
- Expires header’ı
Conditional TTL
Conditional TTL
- Koşullu TTL
- Response status code’a göre
- Content type’a göre
Önbellek Invalidation
TTL Expiry
- Zaman aşımı ile otomatik silme
Manual Invalidation
- Manuel cache temizleme
- API üzerinden invalidation
Event-Based
- Event bazlı invalidation
- Webhook ile invalidation
Pattern-Based
- Pattern bazlı invalidation
- Wildcard invalidation
Önbellek Kullanım Senaryoları
Response Caching
- İlk istek: Backend’den al, cache’e kaydet
- Sonraki istekler: Cache’den döndür
- TTL sonrası: Cache’i temizle, tekrar backend’den al
Token Caching
- Token doğrulama: Token cache’de var mı kontrol et
- Cache’de varsa: Doğrulama yapmadan döndür
- Cache’de yoksa: Identity Manager’dan doğrula, cache’e kaydet
Configuration Caching
- API Proxy konfigürasyonu: Management API’den al
- Local cache’e kaydet
- Konfigürasyon değişikliğinde: Cache’i invalidate et
Throttling ve Quota
- Throttling ve quota verileri distributed cache’de tutulur
- Tüm API Gateway instance’ları arasında paylaşılır (farklı namespace’lerde olsalar bile)
- Hazelcast üzerinden senkronize edilir
- Gateway pod’ları farklı namespace’lerdeki cache sunucularına Kubernetes service discovery ile erişir
Önbellek Best Practices
TTL Yönetimi
- Uygun TTL değerleri seçin
- Çok kısa TTL performansı düşürür
- Çok uzun TTL stale data riski
Cache Key Design
- Anlamlı cache key’ler
- Collision’ları önleyin
- Pattern-based invalidation
Memory Management
- Cache size limitleri
- Eviction policies
- Memory monitoring
Error Handling
- Cache hatalarında fallback
- Backend’e yönlendirme
- Error logging

