Kafka生产者读取数据文件

Sum*_*mit 5 apache-kafka kafka-producer-api

我试图在循环中加载数据文件(以检查统计数据)而不是 Kafka 中的标准输入。下载Kafka后,我执行了以下步骤:

启动动物园管理员:

bin/zookeeper-server-start.sh config/zookeeper.properties
Run Code Online (Sandbox Code Playgroud)

启动服务器:

bin/kafka-server-start.sh config/server.properties
Run Code Online (Sandbox Code Playgroud)

创建了一个名为“test”的主题:

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
Run Code Online (Sandbox Code Playgroud)

跑生产者:

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 
Test1
Test2
Run Code Online (Sandbox Code Playgroud)

消费者聆听:

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
Test1
Test2
Run Code Online (Sandbox Code Playgroud)

我想将数据文件传递给生产者,而不是标准输入,消费者可以直接看到它。或者是否有任何 kafka 生产者而不是控制台消费者使用它我可以读取数据文件。任何帮助将不胜感激。谢谢!

Sha*_*Guo 7

您可以通过 cat 读取数据文件并将其通过管道传输到 kafka-console-producer.sh。

cat ${datafile} | ${kafka_home}/bin/kafka-console-producer.sh --broker-list ${brokerlist} --topic test 
Run Code Online (Sandbox Code Playgroud)

  • Kafka 有内置的 File-source 连接器,它是为这样的任务而设计的:将单个文件读入生产者,供消费者吸收数据。看我下面的回答。 (2认同)