模式注册表kafka:如何将其集成到java项目中

w1e3prcc  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(436)

在经历了几次关于模式注册的讲座并研究了它是如何工作的之后,我比以前更困惑了。
我想了解如何在我的kafka项目中包含一个schema注册表,在这个项目中,我们在本地有一些生产者和一些消费者处理远程服务器的相应消费者/生产者。
如果我理解正确,生产者将我的avrofile的schemaid(它有当前模式的一个版本)发布到schema registry中,并上传kafka队列上的一些主题,其中schemaid位于有效负载头中。
之后,使用者将从队列中读取具有相同schemaid的主题(通过调用api?),并且将使用该主题。
我理解得对吗?你能给我解释一下吗,也许用一个图表?
非常感谢。斯特凡诺

yk9xbfzb

yk9xbfzb1#

整体流程如下所示:

在发送avro负载时,kafka生产者首先在schema注册表中注册schema,如果它还没有注册的话。然后它准备avro字节数组,按顺序放入magic字节、schema id(4字节)和序列化的avro字节。Kafka的实际有效载荷示意图如下:

消费者的工作恰恰相反。它验证magic字节(到目前为止,该字节应始终为零),获取模式id,使用该id从模式注册表获取模式,最后使用该模式反序列化avro字节。我省略了序列化/反序列化部分,因为你的问题中没有提到,而且网上有很多资料。

相关问题