Głupio wydaje się porównywanie tych dwóch serwerów, biorąc pod uwagę, że są one przeznaczone do bardzo różnych rzeczy. Ale jeśli się nad tym zastanowić, mogą zrobić wiele podobnych rzeczy: przechowywać dane konfiguracyjne, blokowanie rozproszone, kolejkowanie itp.
Mam instancję Redis , której używam do niektórych rzeczy związanych z produkcją, ale chciałbym przeprowadzić prostą synchronizację między serwerami (głównie zmiany konfiguracji, które nie wymagają wypychania kodu i prostego blokowania między serwerami). Co daje mi Zookeeper , czego nie zrobiłby Redis?
database
synchronization
redis
Jason Baker
źródło
źródło
Odpowiedzi:
W pracy używamy zarówno Redis, jak i Zookeeper, więc jest to doświadczenie z pierwszej ręki
Redis jest szybki; naprawdę, bardzo szybko. Jest również natychmiast spójny, więc jest dobry dla szybko zmieniających się zestawów danych. Minusem jest to, że jeśli działa na jednym serwerze, jeśli zawiedzie, tracisz dostęp do zapisu, dopóki inny serwer nie zajmie swojego miejsca. Wymiana serwera jest operacją ręczną, chyba że sam go zautomatyzujesz. (Nadal możesz uzyskać dostęp do odczytu swoich danych, jeśli skonfigurujesz instancję slave).
Zookeeper cechuje również natychmiastowa spójność. Nie jest w połowie tak szybki, ale odzyska się automatycznie (jeśli to możliwe) w przypadku awarii, więc jeśli potrzebujesz ciągłego dostępu do zapisu, nawet jeśli twoje serwery zawiodą na tobie, będziesz chciał użyć Zookeeper.
Moja rada jest taka, że do koordynacji używaj Zookeepera: śledzenie, które węzły są aktywne, wyborów lidera w grupie itp. Użyj redis do zestawów danych, które wymagają szybkiego zapisu, ale gdzie okazjonalne przestoje nie są katastrofą. Na przykład liczniki trafień dla stron internetowych.
źródło