如何在不生成 POJO 类的情况下发送 avro 消息

问题描述 投票:0回答:1

我的应用程序应该能够接受任何对象。

接受对象后,我需要将消息发布到 kafka 主题。主题附加了模式。

当我使用 avro maven 插件生成 POJO 时,我能够进行模式验证。

但我正在寻找一些通用的解决方案,这样我就可以接受任何 java 对象,并且可以使用模式注册表进行验证,并且可以发布到 kafka 主题。

我尝试使用基于模式文件生成 POJO 类的 avro maven 插件。但我不想生成 pojo 类。我希望它是通用的,以便我的应用程序可以接受任何 java 对象并将其发布到不同的主题。

java apache-kafka avro kafka-producer-api confluent-schema-registry
1个回答
0
投票

可以使用 Avro

GenericRecord
类型,它的操作与 Java HashMap 非常相似

可以接受任何java对象

你真的不需要 Avro。您可以使用

ObjectOutputStream
编写任何可序列化的 Java 类型。但是,这样做的问题是很难与可能使用 Kafka 主题的其他语言一起使用。

您也可以在 Avro 中使用

bytes
类型,并在其中填充 anything,但如果您想为这些事件设置一些一致的格式,我建议您查看 CloudEvents 规范。

© www.soinside.com 2019 - 2024. All rights reserved.