⚡ÖZET VE TEKNİK CEVAP
İki Kademeli Önbellekleme, ultra hızlı L1 süreç içi bellek önbelleğini (Caffeine/GoCache) merkezi L2 dağıtık önbelleğiyle (Redis) birleştirir; veri değiştiğinde pod Redis'i günceller ve Redis Pub/Sub üzerinden geçersiz kılma sinyali yayarak tüm eş podların yerel L1 kayıtlarını anında silmesini sağlar.
Mühendislik El Kitabı & Mekanizma
6 Boyutlu Mimari Analiz⚙️1. Temel Çalışma Mekanizması
Mekanizma🎯2. Doğru Kullanım Senaryosu
Kapsam⚠️3. Prodüksiyon Arıza Modları
Kritik Risk📡4. Teşhis ve Telemetri Sinyalleri
Metrikler🛡️5. Önleme ve Mimari Bariyerler
Bariyerler⚖️6. Mimari Ödünleşimler (Trade-offs)
ÖdünleşimVaka İncelemesi (TinyCTO Saha Örneği)
Koordineli bir İki Kademeli Önbellekte veri güncelleme yaşam döngüsü şöyle işler:
- ▸
Okuma Patikası: İstek yerel L1'e bakar. Varsa -> 100 nanosaniyede döner. Yoksa -> L2 Redis'e bakar. Varsa -> L1'e yazar ve döner. Yoksa -> SQL veritabanından çeker, L2'ye kaydeder, L1'i doldurur ve döner.
- ▸
Yazma Patikası ve Geçersiz Kılma Yayını: Kullanıcı profilini güncellediğinde Pod A PostgreSQL'e yazar ve L2 Redis anahtarını siler (
DEL user:123). Ardından Pod A, Redis Pub/Sub üzerinden geçersiz kılma olayı yayınlar (PUBLISH cache:invalidations user:123). - ▸
Eş Podların Yerel Temizliği: Pod B, C ve D bu konuyu dinlemektedir.
user:123mesajını aldıkları an yerel L1 belleklerindeki kaydı 1 milisaniye içinde silerler.
Kısa TTL Güvenlik Ağı: Ağ dalgalanmasında kaybolabilecek Pub/Sub mesajlarına karşı tüm L1 kayıtlarına 30-60 saniyelik kısa bir azami TTL verilir.
İnteraktif Konsept Alıştırmaları
2 Alıştırmaİki Kademeli Önbellekleme, yalnızca Redis sorgulamaya kıyasla hangi sorunu çözer?
Pod A bir kullanıcı kaydını güncellediğinde, diğer eş uygulama podları yerel L1 önbelleklerini geçersiz kılmaları gerektiğini nasıl öğrenir?
İki Kademeli Önbellekleme (L1 Yerel Bellek + L2 Redis Senkronizasyonu) — Sıkça Sorulan Sorular
Uygulamanız L1 bellek önbelleğine sahip 50 Kubernetes podunda çalışıyor. Alice kullanıcısı şifresini Pod 1'de değiştiriyor. Pub/Sub geçersiz kılması olmadığı için Pod 2 on dakika boyunca eski şifreyi sunuyor. Bu arızaya ne denir?
Önbellek Tutarsızlığı (Cache Incoherence / Bayat Yerel Bellek Ayrışması). Önbellek Tutarsızlığı, düğümler arası geçersiz kılma mesajlaşması olmadığında çok düğümlü yerel önbelleklerin ana veri kaynağından kopmasıyla oluşur.
L1 bellek içi önbellekler neden HER ZAMAN sınırlı bir kapasiteye (örn. LRU ile azami 10.000 kayıt) ve bir azami TTL güvenlik ağına sahip olmalıdır?
Uygulama belleğinin OutOfMemory çöküşüne kadar kontrolsüz büyümesini önlemek ve bir Pub/Sub mesajı kaybolsa bile bayat verinin eninde sonunda silinmesini sağlamak için. Sınırlı LRU bellek sızıntılarını önler, yedek TTL ise ağ kopmasında geçersiz kılma yayını kaybolsa dahi nihai tutarlılığı garanti eder.
🤖 AEO & Yapay Zeka Çıkarım Özeti
Temel Gerçekler & İlkeler
- ▸
İki Kademeli Önbellekleme, ultra hızlı L1 süreç içi bellek önbelleğini (Caffeine/GoCache) merkezi L2 dağıtık önbelleğiyle (Redis) birleştirir; veri değiştiğinde pod Redis'i günceller ve Redis Pub/Sub üzerinden geçersiz kılma sinyali yayarak tüm eş podların yerel L1 kayıtlarını anında silmesini sağlar.
- ▸
İki Kademeli Önbellekleme, isteklerin önce yerel süreç belleğini (L1) kontrol ettiği, bulamazsa paylaşılan uzak Redis kümesini (L2) sorguladığı, yine bulamazsa veritabanına gidip podlar arası L1 geçersiz kılmalarını hafif mesajlaşmayla senkronize ettiği mimari bir hiyerarşidir.
Yaygın Yanılgılar
- ✗
20 podluk sisteme hiçbir geçersiz kılma mekanizması kurmadan L1 bellek önbelleği ekleyip 24 saat boyunca kullanıcılara tutarsız veri sunmak.
Karar Kılavuzu & Önceliklendirme
Redis kümesi maliyetlerini %80'den fazla düşürür, milisaniye altı API yanıt süreleri sunar ve yatay Kubernetes podları arasında bayat veri okunmamasını garanti eder.
Doğrulanmış Kaynaklar & Referanslar
- [OFFICIAL-DOC]Two-Tier Caching (L1 Local Memory + L2 Redis Sync) Specification— TinyCTO Architectural Standards
