【发布时间】:2021-06-12 10:41:53
【问题描述】:
我一直在尝试在没有融合模式注册表的情况下实现 Avro 反序列化。一个快速的research 表明我可以在将记录发送到主题之前将模式嵌入到标题中。但是模式在嵌入到标头之前必须再次序列化为字节,这再次使这成为问题。有没有办法做到这一点?
与这种方法相关的缺点是什么。
confluent 如何从数据中提取模式并将其存储在模式注册表中?我知道模式注册表在将数据发送到主题时在记录头上嵌入了模式 id。数据在发送到模式注册表之前不是序列化的吗?
如果我们再看一下 Confluent JsonDeserialzier,它会在没有任何架构的情况下反序列化数据并与 JsonNode 一起使用。为什么 Avro 不能使用类似的机制?
【问题讨论】:
-
“我一直在尝试在没有融合模式注册表的情况下实现 Avro 反序列化” 您能否编辑您的问题以包含此要求的动机?这将使更准确和更有用的回答更容易:)
-
@RobinMoffatt 我一直在尝试创建一个实验来检查如何为 POC 项目实现 avroserialization 和反序列化,当然我不能处理模式,因为会有一个很多。但是到目前为止我所看到的所有示例都与模式注册表有关,我需要知道如何在不需要模式注册表的情况下实现它。但是随着我越来越多地研究这个模式注册表变得难以接受。如果您能就这个问题提出您的想法,我将不胜感激。
-
我还是不明白你为什么不想使用模式注册表。它们有一个非常有用的目的。
-
@RobinMoffatt 正如我所说,我正在试验,很想了解底层细节
-
首先,Kafka 没有使用“标题”,链接的问题是针对 Avro 容器文件的。其次,Confluent 序列化器是开源的,因此您可以观察它们是如何工作的
标签: java json avro confluent-schema-registry