在没有 Confluent Schema Registry 的情况下在 KafkaConnect 中使用 Avro
Use Avro in KafkaConnect without Confluent Schema Registry
我们在当前的基础设施中安装了 vanilla apache Kafka,我们开始记录一些我们想要使用 Kafka Connect 处理的数据。目前我们使用 Avro 作为我们的消息格式,但我们的基础设施中没有架构注册表。
将来,我们计划用 Confluent 替换当前堆栈并使用 Schema Registry 和 Connect,但有一段时间我们只需要为此部署 Connect。
是否可以以某种方式配置 Connect 接收器,以便它们使用显式 avsc 文件或模式而不连接到模式注册表并且不使用具有魔法字节和模式 ID 的 Confluent 格式?
是的,但您将不得不实施自己的 Converter 来处理原始 avro 记录。然后,您将指定 avsc 文件的位置,或者可以使用 [value|key].converter
命名空间在连接器配置中提供架构的服务。
例如,Confluent AvroConverter
需要 属性 告诉它 Schema Registry 在哪里:
value.converter=io.confluent.connect.avro.AvroConverter
value.converter.schema.registry.url=http://schema-registry:8081
所以您可以复制 Confluent AvroConverter 但可能会提供 avsc 文件的路径?
是的,可以在 Github 上使用 registryless-avro-converter。
按照那里的构建说明,在加载其他连接器时将 JAR 添加到您的 plugin.path
文件夹,然后像这样设置
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
请注意,这将要求您 store/maintain/sync 所有 Connect 工作人员 上的架构文件,但是
或者,您可以使用香草 Kafka 设置模式注册表 - 没有理由进行一些“融合迁移”,因为除了序列化器和反序列化器配置之外,注册表不需要任何基础结构更改。
我们在当前的基础设施中安装了 vanilla apache Kafka,我们开始记录一些我们想要使用 Kafka Connect 处理的数据。目前我们使用 Avro 作为我们的消息格式,但我们的基础设施中没有架构注册表。 将来,我们计划用 Confluent 替换当前堆栈并使用 Schema Registry 和 Connect,但有一段时间我们只需要为此部署 Connect。
是否可以以某种方式配置 Connect 接收器,以便它们使用显式 avsc 文件或模式而不连接到模式注册表并且不使用具有魔法字节和模式 ID 的 Confluent 格式?
是的,但您将不得不实施自己的 Converter 来处理原始 avro 记录。然后,您将指定 avsc 文件的位置,或者可以使用 [value|key].converter
命名空间在连接器配置中提供架构的服务。
例如,Confluent AvroConverter
需要 属性 告诉它 Schema Registry 在哪里:
value.converter=io.confluent.connect.avro.AvroConverter
value.converter.schema.registry.url=http://schema-registry:8081
所以您可以复制 Confluent AvroConverter 但可能会提供 avsc 文件的路径?
是的,可以在 Github 上使用 registryless-avro-converter。
按照那里的构建说明,在加载其他连接器时将 JAR 添加到您的 plugin.path
文件夹,然后像这样设置
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
请注意,这将要求您 store/maintain/sync 所有 Connect 工作人员 上的架构文件,但是
或者,您可以使用香草 Kafka 设置模式注册表 - 没有理由进行一些“融合迁移”,因为除了序列化器和反序列化器配置之外,注册表不需要任何基础结构更改。