我们使用的是kafka,avro和avro模式注册表。给定一组我想使用的主题,有没有一种方法可以获得解码我将接收的消息所需的所有模式ID?我已经检查了confluent的python客户机的实现,它似乎要做的是接收消息,从单个消息中获取avro模式id,然后动态地从avro模式注册表中查找模式。我正在寻找一种方法来获取程序执行前所需的所有模式(即手动)。
vhmi4jdf1#
通过对schema registry运行api调用,可以在schema registry中获得可用的架构定义,如:curl http://localhost:8081/schemas/ids/3其中url中的最后一个数字是您感兴趣的模式。如果代理中有多种类型的消息,则可以更改url中的最后一个#,以获取不同消息类型的不同架构定义。有关api调用的详细信息,请参阅:https://docs.confluent.io/3.3.0/schema-registry/docs/api.html#schemas这是confluent平台的3.3版。您可以将其更改为current以获取当前平台文档。
k10s72fa2#
是的,您可以获取任何主题数据的模式restapi是
GET /subjects/(string: subject)/versions
获取在指定主题下注册的版本列表。主题引用“-key”或“-value”,具体取决于您是为该主题注册键模式还是值模式一旦获得schema的版本,就可以使用
GET /subjects/(string: subject)/versions/(versionId: version)/schema
参考https://docs.confluent.io/current/schema-registry/docs/api.html
2条答案
按热度按时间vhmi4jdf1#
通过对schema registry运行api调用,可以在schema registry中获得可用的架构定义,如:
curl http://localhost:8081/schemas/ids/3
其中url中的最后一个数字是您感兴趣的模式。如果代理中有多种类型的消息,则可以更改url中的最后一个#,以获取不同消息类型的不同架构定义。
有关api调用的详细信息,请参阅:https://docs.confluent.io/3.3.0/schema-registry/docs/api.html#schemas
这是confluent平台的3.3版。您可以将其更改为current以获取当前平台文档。
k10s72fa2#
是的,您可以获取任何主题数据的模式
restapi是
获取在指定主题下注册的版本列表。主题引用“-key”或“-value”,具体取决于您是为该主题注册键模式还是值模式
一旦获得schema的版本,就可以使用
参考
https://docs.confluent.io/current/schema-registry/docs/api.html