Önce nöbetçi konuşalım.
Sentinel yük devretmeyi yönetir, Redis'i HA için yapılandırmaz. Bu önemli bir ayrımdır. İkincisi, gönderdiğiniz diyagram aslında kötü bir kurulumdur - Sentinel'i yönettiği Redis düğümleriyle aynı düğümde çalıştırmak istemezsiniz. O konağı kaybettiğinizde ikisini de kaybedersiniz.
"Kaynak israfı mı?" kullanım durumunuza bağlıdır. Bu kurulumda üç Redis düğümüne ihtiyacınız yok, sadece ikisine ihtiyacınız var. Üç, yedekliliğinizi artırır, ancak gerekli değildir. Eklenen fazlalığa ihtiyacınız varsa, bu bir kaynak israfı değildir. Yedekliliğe ihtiyacınız yoksa, tek bir Redis örneğini çalıştırır ve buna iyi dersiniz - çünkü daha fazla çalıştırmak "israf" olur.
İki köle çalıştırmanın bir başka nedeni de okumaları bölmek olabilir. Yine, ihtiyacın olursa israf olmaz.
"Mevcut kaynakları tam olarak kullanmanın daha iyi bir yolu var mı?" Özel senaryonuza ve kodunuza fazlasıyla bağlı olduğu için buna cevap veremiyoruz. Bununla birlikte, depolanacak veri miktarı "küçük" ise ve komut oranı aşırı yüksek değilse, Redis'e bir ana bilgisayar ayırmanıza gerek olmadığını unutmayın.
Şimdi "Redis kümeleme, Redis sentinel'e bir alternatif mi?" Gerçekten tamamen kullanım durumunuza bağlıdır. Redis Cluster bir HA çözümü değildir - çok yazıcılı / ramdan daha büyük bir çözümdür. Hedefiniz sadece HA ise, o zaman muhtemelen sizin için uygun olmayacaktır. Redis Kümesi, özellikle çok tuşlu işlemlerde sınırlamalarla birlikte gelir, bu nedenle mutlaka basit bir "sadece kümeyi kullan" işlemi değildir.
Redis çalıştıran üç ana makineye (ve çalışan üç nöbetçiye) sahip olmanın boşuna olduğunu düşünüyorsanız, daha fazla kaynak gerektirdiği için Küme'yi daha da fazla tutabilirsiniz.
Sorduğunuz sorular muhtemelen yazıldığı gibi hayatta kalamayacak kadar geniş ve fikir temelli. Üzerinde çalıştığınız belirli bir durum / sorununuz varsa lütfen bununla güncelleyin, böylece size özel yardım ve bilgi sağlayabiliriz.
Özellikler için güncelleme:
Senaryonuzda uygun yük devretme yönetimi için, biri JBoss sunucunuzda çalışan 3 nöbetçi ile giderdim. 3 JBoss düğümünüz varsa, her birinde bir tane bulun. Ayrı düğümlerde bir Redis bölmesine (ana + bağımlı) sahip olurdum ve nöbetçinin yük devretmeyi yönetmesine izin verirdim.
Oradan, JBoss / Jedis'i, bilgi ve bağlantı yönetimi için Sentinel'i kullanmak üzere bir kablolama meselesi. Bunları kullanmadığım için hızlı bir arama Jedis'in desteğine sahip olduğu ortaya çıkıyor, sadece doğru şekilde yapılandırmanız gerekiyor. Bulduğum bazı örnekler altındadır Sentinel ile Jedis bir örnek arıyorsunuz ve https://github.com/xetorthio/jedis/issues/725 hakkında konuşmak hangi JedisSentinelPool
bir havuz kullanımı için rota olma.
Sentinel bir yük devretme gerçekleştirdiğinde, istemcilerin bağlantısı kesilir ve Jedis, Sentinellere mevcut yöneticinin kim olduğunu sorarak yeniden bağlanmayı halledecektir (gerekir mi?).