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.
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.
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:
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
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).
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
Solr arbeitet auch daran, ZooKeeper zu integrieren . Hier können Sie sehen, dass sie für dynamische Konfiguration, Sharding, SPOF-Eliminierung (Master / Slave-Wahl), Neuausgleich usw. verwendet werden.
Kafka wird von Linkedin verwendet und verlässt sich auf Zookeeper.
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.
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).
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
Hier finden Sie einige Details zur Verwendung von ZooKeeper durch HBase , einschließlich Informationen darüber , wie HBase in Zukunft verwendet werden soll. Im Allgemeinen verwenden sie es, um SPOF auf den Regionsservern über die mit ZooKeeper implementierte Leader-Wahl zu eliminieren.
Antworten:
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.
quelle
Freie Software Projekte Powered by ZooKeeper:
Apache-Projekte Unterstützt von ZooKeeper:
Quelle: https://cwiki.apache.org/confluence/display/ZOOKEEPER/PoweredBy
quelle
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.
quelle
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
quelle
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:
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).
quelle
Es gibt einen guten Artikel über ZooKeeper - The King of Coordination über ZooKeeper bei Elastic Cloud.
quelle
Solr arbeitet auch daran, ZooKeeper zu integrieren . Hier können Sie sehen, dass sie für dynamische Konfiguration, Sharding, SPOF-Eliminierung (Master / Slave-Wahl), Neuausgleich usw. verwendet werden.
quelle
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.
quelle
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).
quelle
Zookeeper wurde für viele andere Dinge als die Konfiguration verwendet. Hier ist eine offizielle Liste der mit zookeeper verteilten Grundelemente.
https://zookeeper.apache.org/doc/current/recipes.html
quelle
Neo4j verwendet Zookeeper als Hochverfügbarkeits-Unternehmensserver! http://docs.neo4j.org/chunked/milestone/ha.html
quelle
datomic verwendet Apache Zookeeper, um die auf Riak basierende Datenspeicherung zu verwalten.
quelle
Hier finden Sie einige Details zur Verwendung von ZooKeeper durch HBase , einschließlich Informationen darüber , wie HBase in Zukunft verwendet werden soll. Im Allgemeinen verwenden sie es, um SPOF auf den Regionsservern über die mit ZooKeeper implementierte Leader-Wahl zu eliminieren.
quelle