2016-10-10 2 views
1

i einem einfachen Produzenten erstellen, die Daten aus Text-Datei lesen und sendet esPush-Daten aus Textdatei zu Kafka kontinuierlich

try(BufferedReader br = new BufferedReader(new  FileReader(getInputFileName()))) { 
     String line = br.readLine(); 
     while (line != null) { 
      KeyedMessage<String, String> data = new KeyedMessage<String, String>(getTopic(), null, line); 
      producer.send(data); 
      System.out.println(line); 
      //Thread.sleep(200l); 
      line = br.readLine(); 

KAFKA und es funktioniert perfekt, aber es Puffer nur die Daten zu diesem Zeitpunkt und senden Wenn also jemand die Textdatei ändert und eine neue Zeile hinzufügt, werden diese neuen Daten nicht an den Kafka gesendet. Ich muss wissen, ob ich etwas tun kann, das kontinuierlich die neuen Zeilen erfasst, die in die Textdatei eingefügt wurden sende es automatisch an kafka.

Hilfe?

+0

Bitte benutzen Sie Kafka Connect in Betracht ziehen: http://kafka.apache.org/documentation#connect –

Antwort

0

Ab Version 0.9 ist Kafka Connect Teil von Apache Kafka.

Auch standardmäßig unterstützt FileStreamSource als einer der Quell-Connector.

Ausführliche Beispiel überprüfen diese link