Redis vs Zookeeper


25

Bu iki sunucuyu, çok farklı şeyler için tasarlandıklarını düşünerek karşılaştırmak aptalca görünüyor. Ancak, bunun hakkında düşünürseniz, pek çok şey yapabilirler: konfigürasyon verilerini depolayın, dağıtılmış kilitleme, sıraya alma, vb.

Üretimle ilgili bazı şeyler için kullandığım bir Redis örneği aldım , ancak sunucular arasında basit bir senkronizasyon yapmak istiyorum (çoğunlukla sunucular arasında sıkma kodu ve basit kilitleme gerektirmeyen yapılandırma değişiklikleri). Zookeeper bana Redis'in vermeyeceği neyi verdi ?


Redis, yapılandırma için (özellikle) değildir. Onlar oldukça farklı ürünler.
Rein Henrich,

4
Niye ya? Yapılandırma için PostgreSQL kullanıyoruz. Yapılandırmayı işletme mantığından bu kadar farklı kılan nedir?
Dmitry Negoda

Yanıtlar:


26

Hem Redis'i hem de Zookeeper'ı işte kullanıyoruz, bu yüzden bu ilk elden deneyime dayanıyor

Redis hızlı; gerçekten, gerçekten hızlı. Aynı zamanda hemen tutarlıdır, bu yüzden hızlı hareket eden veri setleri için iyidir. Dezavantajı, bir sunucu üzerinde çalışan, başarısız olursa o zaman başka bir sunucu gerçekleşene kadar yazma erişimini kaybedersiniz. Sunucuyu değiştirmek, kendiniz otomatikleştirmediğiniz sürece manuel bir işlemdir. (Bir ikincil örnek yapılandırırsanız verilerinize okuma erişimi alabilirsiniz).

Zookeeper da hemen tutarlılık sunuyor. Yarısı kadar çabuk değil, ancak başarısızlıkla karşı otomatik olarak (mümkün olduğunda) iyileşir, bu nedenle sürekli yazma erişimine ihtiyacınız varsa, sunucularınız başarısız olsa bile Zookeeper'ı kullanmak isteyeceksiniz.

Benim tavsiyem, koordinasyon için zookeeper kullanmak: hangi düğümlerin aktif olduğunu izlemek, bir grup arasında lider seçimini yapmak, vs. Örneğin web sayfaları için sayaçları vur.


Şu anda bir proje üzerinde çalışıyorum ve hayvanat bahçesinin bu şekilde gideceğini düşünüyordu. Bir yerde paylaşabileceğin daha fazla bilgin varsa harika olurdu. Birden fazla reklam değişimi ile uğraşıyoruz ve günde yaklaşık 4 milyar + olayı izliyoruz. Ön uç sunucularımızı yeniden tasarlamak istiyoruz ve takip sayıları, minimum ağırlıklandırma vb. Bilgileri depolamak için hayvanat bahçesine bakıyoruz. Duruşunuz, 2012'den bu yana 3 yıl boyunca değişti mi?
Chris Hinshaw

@ ChrisHinshaw Aynı sorunla karşı karşıyayım. Hem dağıtılmış kilitler hem de kusursuzluk gerektiren dağıtılmış bir kaynak yöneticisi için Redis ve Zookeeper'ı düşünün. Herhangi bir geri bildiriminiz var mı?
Rafael Saraiva

Şimdi bunun bir tekrarını bitiriyorum. Hız nedeniyle redis ile gittim. Hayvan bekçiyle bazı performans sorunları vardı, ancak sorunları hatırlamıyorum. Metriklere ve sayılara dayalı zaman çizelgeleri verilerini saklıyoruz. Arama sayısını sınırlamak için her bir zaman dilimindeki sayıları güncellemek için lua komut dosyaları kullanıyorum. Örnek olarak, teklif talepleri için br: 1: 2: 3: 4 biçimindeki bir hash anahtarımız var, buradaki sayılar bir metrik: ajans: reklamveren: kampanya: reklam hiyerarşisini temsil ediyor. Karmada değerler yıl: ay: gün: saat: dakikadır. Lua
betiğimde

Zaman dilimleri. Böylece betiğim y: m: d: h 'yi iki noktaya böler ve her dilim için toplamları günceller. Bu şekilde herhangi bir zaman dilimi için bir hscan kullanabilir veya bir anahtar listesi alabilirim. Redis'te en önemli şey, anahtarlar için hierachial bir model bulmaktır. Gelecekte bir noktada, tüm bunları bir cassandra mağazası ile rdd'nin yaratması için hareket ettirmek istiyorum. Zamanım olsaydı, bunu karşılaştırmak için kıvılcım akışı uygulardım. Redis ile eşit olacağını ve analitik yapmanın esnekliğini sağladığını düşünüyorum.
Chris Hinshaw
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.