在模式注册表中,消费者的模式可能与生产者的模式不同,这实际上意味着什么

try*_*ark 2 avro apache-kafka kafka-producer-api confluent-schema-registry

在向 Kafka 生成 AVRO 数据时,Avro 序列化程序在写入数据时使用的字节数组中写入相同的架构 ID。

Kafka Consumer 根据收到的字节数组中的模式 ID 从模式注册表中获取模式。因此,生产者和消费者都使用相同的模式 ID,因此模式也如此。

但为什么包括这篇文章在内的许多文章都说消费者的模式可能与生产者的模式不同。

请帮助我理解这一点。

cri*_*007 5

\n

Kafka Consumer根据模式ID从模式注册表中获取模式

\n
\n\n

仅当您让解串器执行此操作时。

\n\n

您能够在消费者代码中定义自己的兼容架构。因此,情况可能会有所不同并遵循 Avro 模式演变的规则

\n\n
\n

模式演变仅在消费者(读取)的反序列化过程中发生。如果消费者\xe2\x80\x99s 架构与生产者\xe2\x80\x99s 架构不同,则在反序列化期间会自动修改值或键,以符合消费者的读取架构(如果可能)。

\n
\n