如何在消费前获取架构?

Posted

技术标签:

【中文标题】如何在消费前获取架构?【英文标题】:How can I get schema before consuming? 【发布时间】:2021-11-29 02:48:01 【问题描述】:

我使用带有模式注册表的 python confluent-kafka 1.5.0 来使用来自 kafka 的 avro 消息。 我只是消费者,无法访问管理员生产者或经纪人或其他东西。 我知道主题名称,并且从消息字段中我也可以在模式注册表客户端中获取主题和名称空间,sr 客户端使用消息中的 schema_id 获取模式。 根据我的目标,在我开始消费之前,我需要方法获取模式(仅 id 或主题名称)。也就是说,我想手动按主题名称获取架构

请仔细阅读,我知道从消息中获取 schema_id 后如何手动获取架构。

【问题讨论】:

如果您知道主题名称,那么您就知道主题名称。只需使用 HTTP 客户端,而不是 Kafka 消费者 主题名称和主题不同,例如:主题“事件”和主题“some.domain.net.container”。我需要方法 confluent 如何找到匹配项 是的,我可以直接向 SR 请求,但我想通过主题名称获取架构 上次我检查过,Python 客户端无法获取 Java 客户端设置的主题名称,但您需要在 Python 代码中定义架构并解析命名空间+从中记录名称。再说一次,不吃任何东西 【参考方案1】:

“在使用之前”获取架构的唯一方法是不使用,而是直接与注册表交互

【讨论】:

以上是关于如何在消费前获取架构?的主要内容,如果未能解决你的问题,请参考以下文章

如何正确处理 with-open 而不会在消费前关闭流?

如何解决 顺序消费重复消费

如何通过 jmx 从 activemq 获取消费者列表和消费者“选择器”?

nsq理解

如何在 python 中扩展 Kafka 消费者?

RocketMq如何保证消费顺序