如何让kafkaproducer继续运行

时间:2016-09-08 10:09:45

标签: java apache-kafka

我在java中编写了kafkaproducer来读取日志。但是在阅读完日志过程结束后,如何让kafkaproducer继续运行。我不希望kafkaproducer在读取日志后停止。

2 个答案:

答案 0 :(得分:1)

逻辑与Kafka无关,但您需要持续监听文件中的数据,如下所示:

    BufferedReader br = new BufferedReader(
            new FileReader("/path/to/log.txt"));

    String line = null;
    while (true ) {
        line = br.readLine();
        if (line == null) {
            //wait till more data is appended to file
            Thread.sleep(1000);
        }
        else {
            //send data to Kafka
            producer.send(new ProducerRecord<String, String>("my-topic", "my-key", line));
        }
    }

答案 1 :(得分:0)

使用Kafka-Log Appender将日志重定向到中央代理。

https://logging.apache.org/log4j/2.x/manual/appenders.html#KafkaAppender