2016-10-10 47 views
1

我已创建一个简单的生产,从文本文件中读取数据并将其发送到卡夫卡推送数据连续

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

我需要知道我是否可以做一些将不断捕获插入到文本文件的新行,自动发送给卡夫卡。

有帮助吗?

+0

你考虑使用卡夫卡连接:http://kafka.apache.org/documentation#connect –

回答

0

从版本0.9开始,Kafka Connect是Apache Kafka的一部分。

默认情况下,它支持FileStreamSource作为源连接器之一。

对于详细的例子检查这个link