首页 > 解决方案 > 来自和到文件的 Kafka Avro 控制台消费者/生产者

问题描述

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

标签: apache-kafkaavroconfluent-schema-registry

解决方案


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

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

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

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

Flink 或 Spark 也可以工作,但 Avro 序列化器设置不太简单,无法使其恢复Schema Registry 格式


推荐阅读