2017-07-11 2 views
0

Per diesem Dokument Kafka tutoriaVerbindet sich der Benutzer mit zoekeeper nicht für den Nachrichtenverbrauch?

Zookeper an Port 2181 Broker/Kafka begann um 9092

starten Producer gestartet Nachrichten Nachrichten

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic Hello-Kafka // producer is producing directly to broker not zookeeper which is correct 

Start-Consumer zu schicken Erhalten

bin/kafka-console-consumer.sh --zookeeper localhost:2181 —topic Hello-Kafka --from-beginning 

Per meins Verständnis Konsument konsumiert Nachricht direkt vom Makler, aber in oben genannten Verbraucher Befehl haben wir nicht erwähnt Broker, sondern nur Tierpfleger. Will Verbraucher mit Tierpfleger (anstelle von Broker) verbinden, um Nachricht zu konsumieren?

Antwort

1

Es gibt einen alten Kafka-Verbraucher (0.8.2 und früher) und einen neuen Kafka-Verbraucher (0.9 und höher). Für eine große Beschreibung, wie die neuen Verbraucher arbeitet die ursprüngliche Ankündigung Blog hier sehen

https://www.confluent.io/blog/tutorial-getting-started-with-the-new-apache-kafka-0-9-consumer-client/

Der alte Verbraucher würde eine Verbindung, aber immer noch alle Mitteilungen Kafka würde holen Zookeeper.

Der neue Verbraucher hat keine Abhängigkeit von Tierpflegern und stellt keine Verbindung zum Tierpfleger her.

Der Konsolen-Hersteller und Konsolen-Consumer unterstützt sowohl die alten als auch die neuen APIs, je nachdem, welche Optionen Sie angeben. Der von Ihnen zur Verfügung gestellte Beispiel-Console-Consumer ist der alte Consumer, da er --zookeeper anstelle von --bootstrap-server

+0

Installierte neuesten Kafka, d. H. Kafka-0.11.0.0-src von 'https: // kafka.apache.org/downloads'. Als ersten Schritt versuche ich, den zoekeeper server einzurichten. Ich benutze Zoowärter, gebündelt mit dem obigen Kafka-Download. Ich navigierte zu ' \ bin \ windows' und führte diesen Befehl' zookeeper-server-start.bat .. \ .. \ config \ zoekeeper.properties' aus, aber es steht 'Die Syntax des Befehls ist falsch. Klassenpfad ist leer. Bitte erstellen Sie das Projekt zuerst, z. Ich bin mir nicht sicher, was ich hier vermisse. – user3198603

+0

Sie haben den Quellcode heruntergeladen. Sie möchten die Binärversion herunterladen, damit sie einfach ausgeführt wird. Da Sie auf Windows sind, die nicht gut unterstützt wird, würde ich empfehlen, die Docker Bilder zu verwenden. Full QuickStart hier http://docs.confluent.io/current/cp-docker-images/docs/quickstart.html –

+0

Danke Binär Download funktioniert. Ich habe den folgenden Consumer-Befehl 'kafka-console-consumer' ausgeführt.bat --bootstrap-server localhost: 9092 --Topic-Test --von Anfang an Es heißt 'Fehlendes erforderliches Argument [zoekeeper]'. Selbst Kafkas neueste Version erwartet einen Tierpfleger? – user3198603

-1

Consumer subscribe to topic und connect to zookeeper.Die Kafka Server teilen Informationen über einen Zookeeper-Cluster. Kafka speichert grundlegende Metadaten in Zookeeper wie Informationen über Themen, Makler, Verbraucher-Offsets (Warteschlangenleser) und so weiter. Um die Rolle des Tierpflegers besser zu verstehen, suchen Sie unter dem folgenden Link nach.

https://www.quora.com/What-is-the-actual-role-of-ZooKeeper-in-Kafka

+0

angibt. Consumer-Offsets werden jetzt in Kafka gespeichert, nicht in zookee. Nur der alte Verbraucher 0.8 oder früher speichert Offsets in zoekeeper –

1

Was sind Sie mit dem --zookeeper Parameter verwendet, ist der alte Verbraucher. Der neue Kafka-Konsument (Sie sollten ihn verwenden) verbindet sich direkt mit einem Kafka-Broker. Dazu können Sie die Option --bootstrap-server anstelle des --zookkeeper verwenden, der localhost: 9092 angibt. Der neue Benutzer speichert den Versatz auf Zookeeper nicht mehr, sondern auf einem Kafka-Broker auf ein bestimmtes Thema namens __consumer_offsets.

Verwandte Themen