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

当与Kafka和Avro一起使用模式注册表时,每个主题有一个或多个模式?

蒋飞捷
2023-03-14

关于Avro序列化的消息是如何被Kafka和Schema Registry处理的,我想要了解的是,从这篇文章中,我了解到模式ID存储在每个消息中的可预测位置,因此我们似乎可以在同一个主题中拥有不同模式的消息,并且能够找到正确的模式,并基于此成功地反序列化它们。另一方面,我看到许多人似乎在使用“一个模式附加到一个主题”的表述,但这意味着每个主题都有一个模式。

那么哪一个是对的呢?我是否可以利用模式注册表(例如KSql),在同一个主题中拥有各种类型(或模式)的消息?

共有1个答案

柯鸿振
2023-03-14

通常,您有1:1的主题/模式关系,但在某些情况下,每个主题有多个模式是可能的(也是有效的)。有关更多信息,请参见https://www.confluent.io/blog/put-moulation-event-types-kafka-topic/

 类似资料:
  • 我有一个关于使用Kafka和主题(Kafka代理)和主题(Schema注册表)的不同名称设置流处理器的问题。 首先,任何操作似乎都可以与 Kafka 代理和模式注册表一起工作,但是如果处理器收到该事件,则模式注册表将魔术开始。 而不是将abc作为主题发送到模式注册表abc。bla将被发送。架构注册表的回答为“未找到”。 预期:localhost:8081/subjects/ABC/versions

  • 我正在研究Kafka支持的事务生产者和这两个链接中描述的精确一次处理: 1)https://www.confluent.io/blog/exactly-once-semantics-are-possible-heres-how-apache-kafka-does-it/2)https://www.confluent.io/blog/transactions-apache-kafka/ 对于用户可以

  • 我试图针对同一个kafka和zookeeper集群装载两个kafka模式注册表实例。但谢马一家的情况越来越复杂。当运行这两个注册表时,如果我使用api“kafka schema registry”注册一个架构,它似乎是在“schema registry ui other”中创建的,而不是像预期的那样显示在“kafka schema registry ui”中。我的配置是: 不可能有两个分离的模式注

  • 如果Kafka主题的Avro模式被用作另一个模式的参考,那么更新该模式的正确方法是什么? 例如,假设我们有两个Kafka主题:一个使用Avro模式用户,另一个使用UserAction。 然后我想给用户添加一个额外的字段——一个“姓氏”,所以它看起来像这样:,空以使此更改兼容。要做到这一点,我可以更改Avro模式文件,使用Maven模式插件重新生成POJO,然后如果我将使用KafkaTemplate

  • 在构建Kafka Streams拓扑时,可以通过两种不同的方式对多个主题的读取进行建模: 读取具有相同源节点的所有主题。 选项1相对于选项2是否有相对优势,反之亦然?所有主题都包含相同类型的数据,并具有相同的数据处理逻辑。

  • 我有一个Kafka消费者配置了主题中的模式轮询,我想做的是在当前模式的基础上创建另一个Avro模式,并使用它水合数据,基本上我不需要50%的信息,需要编写一些逻辑来更改几个字段。这只是一个例子 从stream返回的事件相当复杂,所以我将一个较小的CustomObj建模为. avsc文件,并将其编译成java。当尝试使用CustomObj运行代码时,我想做的就是使用一个事件,然后将其反序列化为一个更