Redis’in Yüksek Bulunur Çalıştırılması
Redis Nedir?
Anahtar/değer deposu (key/value store)
Veri yapısı sunucusu (data structure server)
Veri tipi string, hash, list, set, bitmap…
Bellek kullanımlı (in-memory), kalıcılık mümkün (persistence)
Çok hızlı
Cache, kuyruk, saydırma, pub/sub…
Redis’te Yüksek Bulunurluk
Çoklama, yedekleme (master-slave replication)
Redis master geçişi (master failover, Sentinel)
Yük dengeleme ve kesintisiz master erişimi (Haproxy)
IP hatası durumunda IP geçişi (IP failover, Keepalived)
Veriyi parçalama (sharding, Twemproxy)
Replication
Asenkron master-slave replication
slaveof <master-ip> <master-port>
Sorguları load balance etmek için
Güncel standby redis sunucu tutmak için
Bakım vb çalışmalar için
Master geçişi - Sentinel
Sentinel: Redis yönetimi yapan dağıtık sistem
İzleme, uyarma, failover ve ayar sağlama
Otomatik failover prosedürü:
Sentinel korosu
Gossip, quorum, leader election algoritmaları
Yeni master belirleme aşamaları
Kesintisiz master erişimi - HaProxy
Redis master standart yapıda SPOF!
Failover oldu yeni master nerede?
HaProxy ile istemciden gelen istek mevcut Redis master kimse ona gönderilmeli.
Anahtar kelime: tcp-check
İstemcilerin okuma istekleri ise yük dengelenerek slavelere gidebilir.
IP geçişi - Keepalived
HaProxy üzerinden Redis master’a ulaşılabiliyor.
İstemci tek Redis sorguluyorsa, bir HaProxy’ye ulaşılamaması sorun.
Keepalived ile Virtual IP.
Sharding - Twemproxy - 1
Redis henüz küme yapıda değil. (Redis Cluster, 3.x’de, kararlı değil)
Yatay ölçekleme gerektiğinde?
İstemciler ile Redis masterları arasına Twemproxy
Twemproxy veriyi Redis’ler arasında otomatik parçalıyor
Sharding - Twemproxy - 2
Sonuç
Yüksek bulunur da olsa gözlemek iyidir
Nagios, metrik takibi
Sorular
?