3 Tierpfleger in 3 Maschinen mit einem Kafka-Broker in jedem Tierpfleger. Anzahl von host: 3 Anzahl von znodes verfolgt werden: 1 [1 * Anzahl der Hosts = 3] Gibt es irgendeine Art und Weise den Hostnamen & ZNODE mit Zookeeper.Stat Klasse Variablen zu verfolgen, wenn ZNODE seinen Zustand ändert [FallOk/NoNode]. Der Versuch, einen Zähler zu implementieren, um den aktiven znode auf mehreren Host-Ports zu verfolgen. Straggling an einem Punkt, um den ersten znode exists existence und reconnecting instance zu identifizieren.Zookeeper Znode Uhr Counter
Antwort
Es gibt eine kleine Zweideutigkeit in Ihrer Frage. Ich nehme an, dass Sie 3 separate Zookeeper-Knoten (Standalone oder 3 separate Ensembles) haben und den gleichen ZNode unter /some/path
in allen 3 Zookeeper-Knoten sehen möchten.
(Wenn Sie mit drei Knoten zu einem Ensemble beziehen, dann müssen Sie sich nicht um den Knoten sorgen, da das Ensemble Konsistenz über die Knoten im Ensemble garantiert)
Der einfachste Weg ist, Verwenden Sie Apache Curator Rezept (siehe recipes), NodeCache. Apache Curator ist eine Sammlung von Rezepten und eine Erweiterung des standardmäßigen ZookeeperClient. Es verwaltet intern alle Randfälle und Verbindungszustände, so dass Sie sich nicht um Schwierigkeiten im reinen Zookeeper-Client kümmern müssen. Ein NodeCache kann einen gegebenen ZNode (bei einem gegebenen ZPath) überwachen und Änderungen mitteilen, die mit diesem ZNode geschehen.
Siehe this answer zu verstehen, wie eine CuratorFramework Instanz zu initialisieren.
Sie müssen lediglich 3 CuratorFramework-Instanzen mit 3 Verbindungszeichenfolgen (für Ihre 3 Knoten) wie in der obigen Antwort beschrieben initialisieren und dann die NodeCache-Objekte für jeden Client starten.
CuratorFramework client1=//create CuratorFramework intance with corresponding connection string.
CuratorFramework client2=//create CuratorFramework intance with corresponding connection string.
CuratorFramework client3=//create CuratorFramework intance with corresponding connection string.
Dann alle diese Kunden beginnen,
client1.start();
client2.start();
client3.start();
Schließlich erstellen und NodeCache Instanzen für die ZNODE für jede CuratorFramework Instanz starten.
Fügen Sie dann NodeCacheListener für jeden Knotencache hinzu, um ZNode-Änderungen zu abonnieren.
znode1.getListenable().addListener({listener class implementing NodeCacheListener});
znode2.getListenable().addListener({listener class implementing NodeCacheListener});
znode3.getListenable().addListener({listener class implementing NodeCacheListener});
Dann starten Sie sie.
znode1.start();
znode2.start();
znode3.start();
Jetzt erhalten Sie jede Änderung, die durch die Zuhörer geschehen, die Sie registriert haben. Hoffe, du hast die Idee.
- 1. Zookeeper-Knoten vs. zNode
- 2. Zookeeper ZNODE Zählung
- 3. So migrieren Sie Kafka vom alten Zookeeper-Cluster zum neuen Zookeeper-Cluster mit anderem Znode-Elternpfad
- 4. Apache Zookeeper Mehrknoten-Kommunikationsfehler
- 5. zookeeper watcher in ruby
- 6. Wie ein ZNODE asynchron in Apache Kuratorin
- 7. PowerShell Get-Counter-Befehl, -ComputerName vs -Counter
- 8. Zookeeper: Verbindungszeitüberschreitung
- 9. Zookeeper Sicherheitsproblem
- 10. HBase ZooKeeper
- 11. ZooKeeper-Knotenzähler?
- 12. Kann dieselbe Zookeeper-Instanz nach Anzahl der Dienste verwendet werden?
- 13. Counter Probleme
- 14. Console Counter
- 15. Web Counter
- 16. ZooKeeper existiert fehlgeschlagen nach 3 Wiederholungen
- 17. Apache Zookeeper/Kurator Time-to-live auf Sperren
- 18. Warum macht Zookeeper Watches einmal Auslöser?
- 19. SaveAsHadoopDataset schließt nie Zookeeper
- 20. Kafka-Cluster und Zookeeper
- 21. Zookeeper Gesamtdaten-Größenbeschränkung
- 22. Ersetzen Sie ZooKeeper Server
- 23. Kafka Zookeeper Verbindung gibt
- 24. Unable ZooKeeper Ensemble
- 25. Löschen des Zookeeper-Datenverzeichnisses
- 26. zookeeper gibt eine unbekannteHostaufschlüsselung
- 27. Kafka - Zookeeper - ACL-Konfiguration
- 28. Apache Kafka-Zookeeper Eigenschaften
- 29. Zookeeper Klärung CAP
- 30. ZooKeeper Alternative für .net