我们正在使用 Kafka、Avro 和 Avro Schema Registry。给定一组我想要使用的主题,有没有办法获取解码我将收到的消息所需的所有模式 ID?
我已经检查了 Confluent 的 Python 客户端的实现,它似乎正在做的是接收消息,从单个消息中获取 Avro 模式 ID,然后即时从 Avro 模式注册表中查找模式。
我正在寻找一种方法来获取执行程序之前所需的所有模式(即手动)。
我们正在使用 Kafka、Avro 和 Avro Schema Registry。给定一组我想要使用的主题,有没有办法获取解码我将收到的消息所需的所有模式 ID?
我已经检查了 Confluent 的 Python 客户端的实现,它似乎正在做的是接收消息,从单个消息中获取 Avro 模式 ID,然后即时从 Avro 模式注册表中查找模式。
我正在寻找一种方法来获取执行程序之前所需的所有模式(即手动)。
是的,您可以获得任何主题数据的架构
剩下的api是
GET /subjects/(string: subject)/versions
获取在指定主题下注册的版本列表。主题是指“-key”还是“-value”,具体取决于您是为该主题注册键模式还是值模式
获得架构版本后,您可以使用以下方式获得每个版本的架构
GET /subjects/(string: subject)/versions/(versionId: version)/schema
参考
https://docs.confluent.io/current/schema-registry/docs/api.html
您可以通过运行对模式注册表的 API 调用来获取模式注册表中可用的模式定义,例如:
卷曲 http://localhost:8081/schemas/ids/3
其中 URL 中的最后一个数字是您感兴趣的架构 #。如果代理中有多种类型的消息,您可以更改 URL 中的最后一个 # 以获得不同消息类型的不同架构定义。
有关 API 调用的详细信息,请参阅:https ://docs.confluent.io/3.3.0/schema-registry/docs/api.html#schemas
这是融合平台的 3.3 版本。您可以将其更改为当前以获取当前平台文档。