我的应用程序应该能够接受任何对象。
接受对象后,我需要将消息发布到 kafka 主题。主题附加了模式。
当我使用 avro maven 插件生成 POJO 时,我能够进行模式验证。
但我正在寻找一些通用的解决方案,这样我就可以接受任何 java 对象,并且可以使用模式注册表进行验证,并且可以发布到 kafka 主题。
我尝试使用基于模式文件生成 POJO 类的 avro maven 插件。但我不想生成 pojo 类。我希望它是通用的,以便我的应用程序可以接受任何 java 对象并将其发布到不同的主题。
可以使用 Avro
GenericRecord
类型,它的操作与 Java HashMap 非常相似
可以接受任何java对象
你真的不需要 Avro。您可以使用
ObjectOutputStream
编写任何可序列化的 Java 类型。但是,这样做的问题是很难与可能使用 Kafka 主题的其他语言一起使用。
您也可以在 Avro 中使用
bytes
类型,并在其中填充 anything,但如果您想为这些事件设置一些一致的格式,我建议您查看 CloudEvents 规范。