Reale Verwendung von Zookeeper [geschlossen]


122

Ich habe mir kürzlich Zookeeper angesehen und mich gefragt, ob jemand es derzeit verwendet und was er speziell zum Speichern verwendet.

Der häufigste Anwendungsfall sind Konfigurationsinformationen, aber welche Art von Daten und wie viele Daten speichern Sie?


3
Es gehört zur Hadoop-Gruppe von Technologien. Hier gibt es einen Anwendungsfall von Yahoo, der ziemlich gut ist - developer.yahoo.net/blogs/hadoop/2009/05/…
Jon

Ich weiß nicht genau, wie es verwendet wird, aber ich weiß, dass die neueste Version von HBase (eine Open-Source-BigTable-Implementierung) ZooKeeper verwendet.
Leo P

10
Diese Frage hat mehr positive Stimmen als alle Antworten zusammen. Zookeeper braucht ein besseres Anwendungs-Wiki.
Mixdev

1
Überprüfen Sie, wie Netflix es verwendet. github.com/Netflix/curator/wiki/Recipes Curator ist Netflix 'Wrapper-Bibliothek für ZK.
eSniff

Überprüfen Sie diesen Artikel: stackextend.com/zookeeper/…
Mouad EL Fakir

Antworten:


13

Die Apache CXF-Implementierung von DOSGi verwendet zookeeper als Repository für die Dienstregistrierung. Einzelne Container verfügen über ein verteiltes Softwarepaket (dsw), das auf alle Dienstereignisse wartet und bei Änderung eines Dienststatus eine Eigenschaft aufweist, die die Verteilung angibt. Der dsw spricht mit dem Discovery-Bundle, das im Fall der Referenzimplementierung zookeeper verwendet, um den Dienst als kurzlebige Knoten zu speichern. Andere Instanzen suchen nach Änderungen an der Knotenstruktur und registrieren Proxys auf ihren lokalen Systemen. Das Endergebnis ist, dass Sie in einfaches OSGi codieren und eine transparente Verteilung erhalten können.



17

HBase verwendet Zookeeper zur Koordination von Aktivitäten, für die sein "Hauptknoten" vor der aktuellen Version verantwortlich war. Durch die Umstellung auf Zookeeper ist die zentrale Steuerung kein einziger Fehlerpunkt mehr.

Zookeeper ist sehr vielseitig; Hier ist ein Beispiel für die Verwendung zum Erstellen einer verteilten gleichzeitigen Warteschlange:

http://blog.cloudera.com/blog/2009/05/building-a-distributed-concurrent-queue-with-apache-zookeeper/

Sie können es natürlich auch verwenden, um Ressourcensperren usw. in einem verteilten System zu erstellen.


14

Alte Frage, aber da diese Seite bei einer Google-Suche nach Anwendungsfällen für Tierpfleger an erster Stelle steht, dachte ich, es wäre am besten, eine aktualisierte Liste zu erstellen

  1. Wikipedia
  2. Zookeeper Wiki
  3. echte Benutzer

Der Link 'echte Benutzer' existiert nicht mehr :(
Ginna

10

Norbert ist ein gutes Beispiel für ein skalierbares Produktionssystem. Im Allgemeinen werden Netty, Protocol Buffers und Zookeeper in ein leichtes Framework für die Ausführung von Clusterdiensten integriert. Protokollpuffer werden verwendet, um Ihre Service-API anzugeben, Netty implementiert Abstraktionen auf Transportebene und Zookeeper ist im Wesentlichen ein fehlertoleranter Erkennungsdienst.

Jedes Mal, wenn eine Dienstinstanz gestartet wird, registriert Norbert sie als verfügbare Instanz eines bestimmten Diensttyps. Aus Sicht der Implementierung werden zwei Zookeeper-Bäume erstellt:

  • "/ ServiceName / member" listet alle bekannten Instanzen des Dienstes auf
  • "/ ServiceName / available" listet die aktuell verfügbaren Instanzen des Dienstes auf

Die wichtigste Eigenschaft für jeden Knoten ist die URL, mit der eine Verbindung zur entsprechenden Dienstinstanz hergestellt werden soll. Es ermöglicht den clientseitigen Lastausgleich - ein Norbert-Client findet die Liste der URLs für einen bestimmten Dienstnamen und versucht, eine Verbindung zu einer dieser URLs herzustellen (z. B. Round-Robin oder zufällig).


6

Es gibt einen guten Artikel über ZooKeeper - The King of Coordination über ZooKeeper bei Elastic Cloud.

Bei Found verwenden wir ZooKeeper beispielsweise ausgiebig für die Ermittlung, Ressourcenzuweisung, Wahl von Führungskräften und Benachrichtigungen mit hoher Priorität. In diesem Artikel stellen wir Ihnen diesen König der Koordination vor und schauen uns genau an, wie wir ZooKeeper bei Found verwenden



3

Storm verwendet Zookeeper, um den gesamten Status zu speichern, damit er nach einem Ausfall in einem seiner (verteilten) Komponentendienste wiederhergestellt werden kann.

Auf diese Weise können die Komponentendienste zustandslos sein und einfach heruntergeladen oder mit den Zookeeper-Servern synchronisiert werden, wenn Konfigurationsdaten benötigt werden. Wenn Sie jemals einen Produktionsserver wiederherstellen mussten, wissen Sie, was für Kopfschmerzen dies sein kann!

Verbraucher der Kafka- Warteschlange können mit Zookeeper Informationen (High Water Mark) darüber speichern, was aus der Warteschlange verbraucht wurde.


2

In meinem Fall speichern wir Konfigurationsdateien im Zookeeper-Ensemble für die Cluster-Nutzung. Wir verwenden das Leader -> Follower-Schema. Wenn also ein Tierpfleger ausfällt, werden wir auf einen anderen umgestellt (replizierter Modus).




1

datomic verwendet Apache Zookeeper, um die auf Riak basierende Datenspeicherung zu verwalten.

Da Riak derzeit nur eine eventuelle Konsistenz unterstützt, verwendet ein auf Riak ausgeführtes Datomic-System auch Apache ZooKeeper, einen hochverfügbaren Koordinierungsdienst. Datomic verwendet ZooKeeper für die Transactor-Failover-Koordination und für die Handvoll Schlüssel pro Datenbank, die mit CAS aktualisiert werden müssen. Quelle: http://blog.datomic.com/2012/11/riak-and-couchbase-support.html


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.