2014-09-24 14 views

Antwort

1

Es scheint, dass es keine kafka Server api ist ein Thema zu erstellen, damit Sie Thema automatische Erstellung der oder die Kommandozeilen-Tool verwenden:

bin/kafka-create-topic.sh --zookeeper localhost:2181 --replica 1 --partition 1 --topic test 
1

Es sieht aus wie Sie können, können auf die folgenden Befehle verwenden sicherzustellen, dass Ihr Thema bereits vorhanden sein (ich nehme an, Sie die folgende kafka python Implementierung verwenden):

client = KafkaClient(...) 
producer = KafkaProducer(...) 
client.ensure_topic_exists('my_new_topic') 
producer.send_messages('my_new_topic', ...) 
+3

Siehe sein wird, die nicht funktionieren wird . 'sure_topic_exists' funktioniert nur mit der aktivierten automatischen Themenerstellung. https://github.com/mumrah/kafka-python/blob/cd81cf0ec8c1b7e7651374c5d1cbd105d003d352/kafka/client.py#L305-L306 – zackdever

0

Es ist schon zu spät. Ich weiß nichts über einen Befehl zum expliziten Erstellen der Themen, aber das folgende erstellt und fügt die Nachrichten hinzu.

ich ein Python kafka Produzent erstellt:

prod = KafkaProducer(bootstrap_servers='localhost:9092') 
for i in xrange(1000): 
    prod.send('xyz', str(i)) 

in der Liste der Kafka Themen xyz vorher nicht da war. Wenn ich die obige Methode gemacht habe, hat der Python-kafka-Client es erstellt und die Nachrichten hinzugefügt.

+1

Eigentlich hat der Broker das Thema erstellt und nur, weil auto.topic.create.enable auf "true" gesetzt wurde . Alle Themen, die auf diese Weise erstellt wurden, weisen die Standardkonfiguration auf, die möglicherweise für Ihren Anwendungsfall geeignet ist oder nicht. –

0

Die Adminclient API wurde programmatisches Thema Erstellung und Konfiguration zu tun, brauchte nur in Kafka 0,11 (ursprünglich für Java)

https://cwiki.apache.org/confluence/display/KAFKA/KIP-117%3A+Add+a+public+AdminClient+API+for+Kafka+admin+operations

erwartet

Es wird Siehe fügen hinzu, dass Nicht-Java-Client-Bibliotheken diese Funktionalität hinzufügen, werden als im Laufe der Zeit. Prüfen Sie mit dem Autor des Kafka Python-Client Sie verwenden (es gibt mehrere), um zu sehen, ob und wann KIP-4 Admin-Protokoll-Unterstützung in der API

https://cwiki.apache.org/confluence/display/KAFKA/KIP-4+-+Command+line+and+centralized+administrative+operations

0
from kafka import KafkaProducer 

producer = KafkaProducer(bootstrap_servers=['localhost:9092']) 
topic = 'topic-name' 

producer.send(topic, final_list[0]).get(timeout=10) 
Verwandte Themen