在没有 Confluent Schema Registry 的情况下在 KafkaConnect 中使用 Avro

Mar*_*cak 5 avro apache-kafka apache-kafka-connect confluent-schema-registry

我们在当前的基础设施中设置了 vanilla apache Kafka,我们开始记录一些我们想要使用 Kafka Connect 处理的数据。目前我们使用 Avro 作为我们的消息格式,但我们的基础设施中没有 Schema Registry。将来,我们计划用 Confluent 替换当前堆栈并使用 Schema Registry 和 Connect,但有一段时间我们只需要为此部署 Connect。

是否可以以某种方式配置 Connect 接收器,以便它们使用显式的 avsc 文件或架构,而无需连接到架构注册表,也不使用具有魔术字节和架构 ID 的 Confluent 格式?

cri*_*007 6

是的,可以使用Github 上的registryless-avro-converter

plugin.path按照那里的构建说明进行操作,在加载其他连接器时将 JAR 添加到您的文件夹中,然后像这样进行设置

key.converter=me.frmr.kafka.connect.RegistrylessAvroConverter
key.converter.schema.path=/path/to/schema/file.avsc
value.converter=me.frmr.kafka.connect.RegistrylessAvroConverter
value.converter.schema.path=/path/to/schema/file.avsc
Run Code Online (Sandbox Code Playgroud)

请注意,这将要求您存储/维护/同步所有 Connect 工作线程上的架构文件,但是


或者,您可以使用普通 Kafka 设置架构注册表 - 没有理由进行一些“融合迁移”,因为除了序列化器和反序列化器配置之外,注册表不需要任何基础设施更改。