Kafka Avro 控制台 Consumer/Producer 来自和来自文件

Kafka Avro Console Consumer/Producer from and to a File

是否可以使用 Avro Console Consumer 将 Avro 编码的消息保存到一个文件中,并使用 Avro Console Producer 读取该文件以写入另一个主题,因为我有一个模式字符串可用于提供给控制台消费者和生产者? 这是开箱即用支持的用例,还是我需要为其编写 shell 脚本?

A​​vro 控制台生产者只接受 JSON 编码字符串,不接受 Avro 文件。但是,给定一个 Avro 文件,您可以将其记录转储为 JSON 和 AVSC 架构,然后可以解析到控制台生成器中(但是,根据我的经验,它在所有情况下都不起作用)。

您可以使用 Kafka Connect S3 或 HDFS 接收器(或 Apache Nifi)来使用 Schema Registry 编码数据并写入本地 Avro 文件。

您可以使用 MinIO 或 Hadoop Ozone 来模拟本地 S3 端点,或者您可以使用 file:// URI 前缀和 HDFS 连接器来写入本地磁盘

据我所知,没有 HDFS 源 Kafka 连接器,但 Confluent 确实提供了 S3 源连接器。 Nifi 可以读取和写入两个文件位置,所以也许从它开始

Flink 或 Spark 也可以工作,但 Avro 序列化程序设置不太直接,无法使其返回 模式注册表格式