Es erscheint albern, diese beiden Server zu vergleichen, wenn man bedenkt, dass sie für sehr unterschiedliche Zwecke gedacht sind. Aber wenn Sie darüber nachdenken, können sie viele ähnliche Dinge tun: Konfigurationsdaten speichern, verteilte Sperren, Warteschlangen usw.
Ich habe eine Instanz von Redis , die ich für einige produktionsbezogene Aufgaben verwende, möchte aber eine einfache Synchronisierung zwischen Servern durchführen (hauptsächlich Konfigurationsänderungen, für die kein Push-up-Code und einfaches Sperren zwischen Servern erforderlich ist). Was gibt mir Zookeeper , dass Redis nicht würde?
database
synchronization
redis
Jason Baker
quelle
quelle
Antworten:
Wir arbeiten sowohl mit Redis als auch mit Zookeeper
Redis ist schnell; wirklich sehr schnell. Es ist auch sofort konsistent und eignet sich daher für sich schnell bewegende Datensätze. Der Nachteil ist, dass auf einem Server ausgeführt, wenn es fehlschlägt, Sie den Schreibzugriff verlieren, bis ein anderer Server seinen Platz einnimmt. Das Ersetzen des Servers ist ein manueller Vorgang, sofern Sie ihn nicht selbst automatisieren. (Sie können weiterhin Lesezugriff auf Ihre Daten erhalten, wenn Sie eine Slave-Instanz konfigurieren.)
Zookeeper bietet auch sofort Konsistenz. Es ist nicht halb so schnell, aber es wird automatisch wiederhergestellt (wo immer möglich), selbst wenn Ihre Server ausfallen, sollten Sie Zookeeper verwenden, wenn Sie kontinuierlichen Schreibzugriff benötigen.
Mein Rat ist, verwenden Sie zookeeper für die Koordination: Verfolgen Sie, welche Knoten aktiv sind, wählen Sie einen Anführer in einer Gruppe usw. Verwenden Sie redis für Datensätze, die schnelle Schreibvorgänge benötigen, bei denen ein gelegentlicher Ausfall jedoch keine Katastrophe ist. Trefferzähler für Webseiten zum Beispiel.
quelle