Redis Sentinel ile Yüksek Erişilebilirlik Mimarisi
Merhaba,
Redis, kurumsal uygulamalarda cache, session store ve mesaj kuyruğu olarak yaygın kullanılıyor. Ama tek Redis instance'ı arıza yaptığında ne olur? Redis Sentinel, yüksek erişilebilirlik için kritik bir çözüm sunuyor. Gelin inceleyelim arkadaşlar.
Redis Sentinel Nedir?
Redis Sentinel, Redis için yüksek erişilebilirlik ve otomatik failover sistemi. Üç temel işlev yapıyor:
- Monitoring: Master ve replica Redis instance'larını sürekli izliyor
- Notification: Sorunlarda admin veya diğer sistemleri uyarıyor
- Automatic Failover: Master arızalandığında replica'lardan birini otomatik master yapıyor
- Service Discovery: Uygulamalara güncel master adresini bildiriyor
Neden En Az 3 Sentinel?
Sentinel kararları quorum (çoğunluk oyu) ile alınır. 2 Sentinel'de bir tanesi down olunca karar alınamaz. 3 Sentinel ile birisi down olsa bile 2'si çoğunluk sağlayıp failover başlatabilir. Split-brain senaryolarını önlemek için tek sayı (3, 5) Sentinel kullanın.
Master-Replica Mimarisi
Temel kurulum: 1 master + 2 replica + 3 Sentinel instance. Master yazma işlemlerini alır, replica'lar okuma için kullanılabilir. Master arızasında Sentinel en güncel replica'yı seçer ve master'a promote eder. Bu süreç genellikle 5-30 saniye sürer.
Uygulama Bağlantısı
Uygulamalar Sentinel'e bağlanır, Sentinel güncel master adresini bildirir. StackExchange.Redis (C# için) ve Jedis (Java için) Sentinel desteği native olarak içeriyor. Bağlantı string'ini master IP'si yerine Sentinel endpoint listesi olarak konfigüre edin.
Redis Cluster vs Sentinel
İkisi farklı sorunları çözüyor:
- Sentinel: Yüksek erişilebilirlik + otomatik failover. Veri tek node'da tutulur (sharding yok).
- Cluster: Hem yüksek erişilebilirlik hem de horizontal sharding. Çok büyük veri ve yüksek yazma hacmi için.
Kurumsal uygulamalarda çoğunlukla Sentinel yeterli. TB'lık cache veya saniyede yüzlerce binlik yazma varsa Cluster değerlendirin.
Redis Sentinel Monitörü
Sentinel durumunu izlemek için redis-cli -p 26379 sentinel masters komutu kullanılabilir. Master değişim olaylarını loglamak ve alertlemek için monitoring sisteminize entegre edin. Redis 7'den itibaren gelen ACL (Access Control List) ile güvenlik katmanı da eklenmeli.
Azure Cache for Redis
Managed Redis tercih ediyorsanız Azure Cache for Redis, Sentinel'i arka planda otomatik yönetiyor. Yüksek erişilebilirlik katmanını seçtiğinizde Sentinel kurulumu sizin yerinize yapılıyor. Operasyonel yük önemli ölçüde azalıyor.
Sonuç
Üretim ortamında single Redis instance kabul edilemez risk. Sentinel ile birkaç saatlik kurulum yatırımı, production kesintilerini önlüyor. Managed servis seçeneği varsa Azure Cache for Redis ile başlayın :)
İyi Günler Dilerim,
Bu yazıyı paylaş: