Ist Tierpfleger ein muss für Kafka?
In Kafka, ich möchte nur eine einzige broker, einziges Thema und eine einzige partition mit einem Erzeuger und mehrere Verbraucher (jeder Verbraucher erhält seine eigene Kopie der Daten, die vom broker). Angesichts dieser, ich will nicht den Aufwand mit Tierpfleger; Kann ich nicht einfach die broker nur? Warum ist ein Tierpfleger muss?
- Einer der größten design-Ziele von Kafka sind cluster-Bereitstellungen. Das ist das problem, das Sie lösen möchten, und es wäre dumm, um ein zk-weniger-version für standalone-server. Ich habe das Gefühl, dass kafka ist nicht das Werkzeug für Ihren job, aber dass Sie besser sein würde, der nur mit einem Vanille-Datei..
- Ich würde wirklich gerne wissen, was Sie abgeschlossen haben? Da Sie nicht haben alle die Antwort, ich nehme an, Sie hatte Ihre eigene Lösung für dieses. Danke !
- Jocko ist ein golang Umsetzung von Kafka ohne Tierpfleger Abhängigkeit & single binary installieren
- Tierpfleger wurde entfernt, siehe Antwort unten stackoverflow.com/a/57328140/1699956
- nur hinzufügen, wenn Sie Lesen, was die Tierpfleger bedeutet, Sie erhalten die Idee -
Zookeeper is network coordinator in a distributed system. Use ZooKeeper extensively for discovery, resource allocation, leader election, and high priority notifications.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, Tierpflegerin ist erforderlich für die Ausführung von Kafka. Von der Kafka-Erste Schritte-Dokumentation:
Warum, sowie Menschen, die vor langer Zeit entdeckt, dass Sie brauchen, um eine Möglichkeit zu haben, koordinierenden Aufgaben, state-management, Konfiguration etc. über ein verteiltes system. Einige Projekte haben Ihre eigenen Mechanismen (man denke an die Konfiguration der server in einer MongoDB sharded cluster, oder ein Master-Knoten in einem Elasticsearch-cluster). Andere haben gewählt, um zu nehmen Vorteil der Tierpfleger als general purpose distributed process coordination system. Also, Kafka, Storm, HBase, SolrCloud, um nur einige zu nennen verwenden alle Tierpfleger zu helfen, zu verwalten und zu koordinieren.
Kafka ist ein verteiltes system und ist gebaut, um zu verwenden Tierpfleger. Die Tatsache, dass Sie nicht mit jedem der verteilten Funktionen von Kafka nicht ändern, wie es gebaut wurde. In jedem Fall sollte es nicht viel Aufwand aus der Verwendung von Tierpfleger. Eine größere Frage ist, warum Sie verwenden würden, diese Besondere design-Muster-eine einzelne broker Umsetzung von Kafka findet sich auf allen für die Zuverlässigkeit bietet eine multi-broker-cluster zusammen mit seiner Fähigkeit, zu skalieren.
Wie bereits erklärt, von anderen, von Kafka (auch in der aktuellsten version) funktioniert nicht ohne Tierpfleger.
Kafka verwendet Tierpfleger für die folgenden:
Wahl einen controller. Der controller ist einer der Broker und ist verantwortlich für die Aufrechterhaltung der leader/follower-Beziehung für alle Partitionen. Wenn ein Knoten ausfällt, ist es der controller sagt andere Replikate zu partitionieren Führer zu ersetzen, die partition Staats-und Regierungschefs auf den Knoten, der ist Weg. Tierpfleger wird verwendet, um wählen Sie einen controller, stellen Sie sicher, dass es nur ein und wählt ein neues ein, wenn es abstürzt.
Cluster-Mitgliedschaft - welche Broker sind lebendig und Teil des Clusters? dies ist auch gelungen, durch Tierpfleger.
Thema Konfiguration - welche Themen vorhanden sind, wie viele Partitionen hat jeder, wo sind die Replikate, wer ist der bevorzugte führend, was die Konfiguration überschreibt, sind für jedes Thema
(0.9.0) - Quoten - wie viel Daten jeder client erlaubt das Lesen und schreiben
(0.9.0) - ACLs - wer darf Lesen und schreiben, zu welchem Thema
(alte high-level-Verbraucher), Welche die Verbraucher Gruppen existieren, die sich Ihre Mitglieder und, was ist die neueste offset-jede Gruppe bekam von jeder partition.
[aus https://www.quora.com/What-is-the-actual-role-of-ZooKeeper-in-Kafka/answer/Gwen-Shapira]
Bezug auf dein Szenario, nur eine broker-Instanz und ein Produzent, mehrere Konsumenten, kann u verwenden pusher um einen Kanal, und drücken Veranstaltung zu diesem Kanal, dass Verbraucher abonnieren können und in der hand die Ereignisse.
https://pusher.com/
Kafka ist gebaut, um zu verwenden Tierpfleger. Es gibt kein entkommen aus, dass.
Kafka ist ein verteiltes system und nutzt Zookeeper, um den status nachverfolgen von kafka cluster-Knoten. Es verfolgt auch der Kafka-Themen, Partitionen etc.
Blick auf Ihre Frage, es scheint, Sie brauchen nicht Kafka. Sie können jede Anwendung verwenden, unterstützt die pub-sub wie Redis, Rabbit MQ oder gehostete Lösungen wie Pub-nub.
IMHO Tierpfleger ist kein Aufwand, sondern macht Ihr Leben viel einfacher.
Es ist im Grunde verwendet, um die Koordination zwischen verschiedenen Knoten in einem cluster. Eines der wichtigsten Dinge bei Kafka ist es verwendet Tierpfleger regelmäßig commit-offsets, so dass bei Ausfall von Knoten kann es wieder von der zuvor begangen offset (stellen Sie sich vor, kümmert sich um alle diese durch Ihre eigenen).
Tierpfleger spielt auch eine lebenswichtige Rolle für das dienen viele andere Zwecke, wie das leader-Erkennung, Konfiguration, Verwaltung, Synchronisation, Erkennung, wenn ein neuer Knoten verbindet oder aus dem cluster, etc.
Zukunft Kafka-releases sind in Planung, um die zu entfernen Tierpfleger Abhängigkeit, aber als von heute ist es ein integraler Bestandteil.
Hier sind ein paar Zeilen aus Ihrer FAQ-Seite:
Für mehr details überprüfen Sie hier
IMHO zookeeper is not an overhead but makes your life a lot easier.
-> nicht von einem sysop ' s Ansicht. Zk ist Stück rückwärts alte java Reste. Es hat zum Beispiel ein lange bestehender Fehler, dass es nicht entsprechen die ttl eines dns-Eintrag, damit es nicht wieder beheben Eintrag. Aus dem Fenster geht Ihr server-swap-Möglichkeiten. Ich würde tauschen es gerne für etcd.Wichtiges update - August 2019:
Tierpfleger Abhängigkeit entfernt von Apache Kafka. Finden Sie die high-level-Diskussion in KIP-500: Ersetzen Sie die Tierpfleger mit einem Selbst-Verwalteten Metadaten Kollegium.
Diese Bemühungen nehmen Sie sich ein paar Kafka-releases und zusätzliche KIPs. Kafka-Controller übernimmt die Aufgaben des aktuellen Tierpfleger Aufgaben. Die Steuergeräte nutzen Sie die Vorteile der Event-Log ist ein zentrales Konzept von Kafka.
Einige Vorteile der neuen Kafka-Architektur, gibt es eine einfachere Architektur, einfache Operationen und eine bessere Skalierbarkeit (z.B. zulassen "unbegrenzte Partitionen".
Andere als die übliche Nutzlast-Nachricht zu übertragen, gibt es viele andere Kommunikation, die geschieht, in kafka. wie
* Ereignisse im Zusammenhang mit Broker beantragen die cluster-Mitgliedschaft
* Ereignisse im Zusammenhang mit Broker immer zur Verfügung
* Erste bootstrap-config-setups.
* Ereignisse im Zusammenhang mit controller und leader-updates.
* Hilfe status-updates wie Heartbeat-updates.
Tierpfleger selbst ist ein verteiltes system, das aus mehreren Knoten in einem ensemble. Tierpfleger ist zentrale Dienstleistung für die Aufrechterhaltung einer solchen Metadaten.
Tierpfleger Zentralisierung und management system für jede Art von verteilten Systemen. Verteilten system verschiedene software-Module laufen auf verschiedenen nodes/Cluster (möglicherweise auf geografisch entfernte Standorte), sondern läuft als ein system. Tierpfleger erleichtert die Kommunikation zwischen den Knoten, Austausch von Konfigurationen zwischen den Knoten, Sie merkt sich, welcher Knoten die Führer, die node joins/leaves, etc. Tierpfleger ist der eine, der hält verteilte Systeme gesund und behält die Konsistenz. Tierpfleger ist im Grunde eine Orchestrierungs-Plattform.
Kafka ist ein verteilt system. Und damit es braucht einige Orchestrierung für Knoten, die möglicherweise geographisch weit entfernte (oder nicht).