【发布时间】:2021-08-01 18:33:19
【问题描述】:
我拥有不受我控制的 Confluent 注册表,以及基于 @kafkajs/confluent-schema-registry 的生产者。有什么方法可以让我了解使用的是哪个版本的消息格式?
我可以得到编码的AVRO 消息,但它只是字节流。有什么方法可以了解它实际上是哪个版本的消息?
【问题讨论】:
标签: javascript apache-kafka avro confluent-schema-registry
我拥有不受我控制的 Confluent 注册表,以及基于 @kafkajs/confluent-schema-registry 的生产者。有什么方法可以让我了解使用的是哪个版本的消息格式?
我可以得到编码的AVRO 消息,但它只是字节流。有什么方法可以了解它实际上是哪个版本的消息?
【问题讨论】:
标签: javascript apache-kafka avro confluent-schema-registry
我看到你正在使用 Confluent,他们有自己的有线格式版本。
嵌入在前导字节中的是架构 ID,可用于从其架构注册表中获取架构:
https://docs.confluent.io/platform/current/schema-registry/serdes-develop/index.html#wire-format
我不确定如何在 Javascript 中操作字节,但我们在 Scala 中做了什么:
/旁注: 真正令人讨厌的是这是一种特定于供应商的格式,尽管 Apache Avro 规范表示包含架构信息的 Single-object encoding。
此外,Confluent 似乎对支持 Apache Avro 格式不感兴趣。 https://github.com/confluentinc/schema-registry/issues/1294
【讨论】: