当前位置: 首页 > 知识库问答 >
问题:

在KafkanConnect中使用Avro,而不使用合流架构注册表

郭意
2023-03-14

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

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

共有2个答案

阳博赡
2023-03-14

是的,但是您必须实现自己的Converter来处理vanilla avro记录。然后,您将指定avsc文件的位置,或者可以使用[value|key]在连接器配置中提供Schema的服务。转换器命名空间。

例如,ConFluentAvroConverter需要一个属性来告诉它Schema注册表的位置:

value.converter=io.confluent.connect.avro.AvroConverter
value.converter.schema.registry.url=http://schema-registry:8081

因此,您可以复制ConFluent AvroConverter,但可能会提供avsc文件的路径?

张腾
2023-03-14

是的,可以在Github上使用无注册avro转换器。

按照此处的构建说明,将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

请注意,这将要求您在所有Connect Worker上存储/维护/同步架构文件

或者,您可以使用您的vanilla Kafka设置Schema注册表-没有理由进行一些“融合迁移”,因为注册表除了您的Serializer之外不需要任何架构体系更改

 类似资料:
  • 我试图使用kafka-avro-console-producer 5.4.0-ccs不自动注册模式。我试着用: 但它仍然在注册模式。属性似乎正确:https://github.com/confluentinc/schema-registry/blob/a0a04628687a72ac6d01869d881a60fbde4177e7/avro-serializer/src/main/java/io/

  • 嘿,我想将ConFluent模式注册表与Avro Serializers一起使用:留档现在基本上是说:不要为多个不同的主题使用相同的模式 谁能解释一下原因吗?我重新搜索了源代码,它基本上将模式存储在Kafka主题中,如下所示(topicname,magicbytes,version- 因此,除了冗余之外,我看不到多次使用模式的问题?

  • 我正在尝试从模式注册表中检索给定kafka主题的模式主题版本。我可以使用成功发布新版本,但我不确定如何检索版本。我在下面尝试使用curl请求,但结果立即命中-1(空)。 我如何修复这个GET请求,或者更好的是,我应该如何使用模式注册中心来检索一个模式?

  • 我们正在使用Kafka和Spring Cloud Stream,我们需要连接到Spring Boot组件中的Confluent Schema Registry,请参阅https://github.com/donalthurley/KafkaConsumeScsAndConfluent. 我们添加了以下配置来创建所需的 ConfluentSchemaRegistryClient bean see h

  • 对于跨网络汇流平台,我们有一个kafka集群在Premise上,另一个在AWS上,其中数据使用mirror Maker从on-prem复制到AWS。这两个集群都独立于它们自己的模式注册表、rest代理和Connect,这两个集群都有不同的生产者和消费者集,并且选择的主题在集群之间被镜像。 部署schema-registry的最佳实践应该是什么?我们是否应该在on-prem和AWS上有一个主服务器(

  • 我正在尝试使用Confluent schema registry,下面是我在Github中找到的一些示例(https://github.com/gAmUssA/springboot-kafka-avro). 当消费者和生产者与模型共享相同的命名空间而不是其工作时。 当使用者位于具有不同名称空间但具有相同类(名称和属性方面)的不同项目中时,它不工作。 合流Avro反序列化程序可以使用正确的值反序列化