0

在经历了几次关于模式注册的讲座并研究了它是如何工作的之后,我比以前更困惑了。

我想了解如何在我的 kafka 项目中包含模式注册表,在该项目中,我们在本地有一些生产者和一些消费者,它们与远程服务器的相应消费者/生产者打交道。

如果我理解正确,生产者将我的 avroFile 的 schemaId(具有此当前架构的版本)发布到架构注册表中,并在 kafka 队列上上传一些主题,其中 schemaID 在有效负载标头中。

之后,消费者将从队列中读取具有相同 schemaId 的主题(通过调用 API?)并且该主题将被消费。

我理解对了吗?你能给我解释一下吗,也许用图表模式?

非常感谢。斯特凡诺

4

1 回答 1

2

整个流程看起来像这样: 在此处输入图像描述 在发送 avro 有效负载时,Kafka 生产者首先在 Schema Registry 中注册模式,如果它不存在的话。然后它准备 avro 字节数组,按顺序将魔术字节、模式 ID(4 个字节)和序列化的 avro 字节放入其中。下面给出了发送到 Kafka 的实际有效负载图: 在此处输入图像描述 消费者的工作正好相反。它验证魔术字节(现在应该始终为零),获取模式 ID,使用该 ID 从模式注册表中获取模式,最后使用该模式反序列化 avro 字节。我省略了序列化/反序列化部分,因为您的问题中没有提到这一点,并且网上有很多可用的材料。

于 2018-08-01T13:29:19.810 回答