如何从合流模式注册中心获得给定一组主题的所有必需的avro模式

cczfrluj  于 2021-06-06  发布在  Kafka
关注(0)|答案(2)|浏览(621)

我们使用的是kafka,avro和avro模式注册表。给定一组我想使用的主题,有没有一种方法可以获得解码我将接收的消息所需的所有模式ID?
我已经检查了confluent的python客户机的实现,它似乎要做的是接收消息,从单个消息中获取avro模式id,然后动态地从avro模式注册表中查找模式。
我正在寻找一种方法来获取程序执行前所需的所有模式(即手动)。

vhmi4jdf

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以获取当前平台文档。

k10s72fa

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

相关问题