我在java中编写了kafkaproducer来读取日志。但是在阅读完日志过程结束后,如何让kafkaproducer继续运行。我不希望kafkaproducer在读取日志后停止。
答案 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