在没有架构注册表的情况下反序列化kafka消息

时间:2020-08-07 00:05:42

标签: apache-kafka deserialization avro

我正在编写一个kafka用户,该用户应反序列化来自avro的传入消息。我确实有消息的架构,并且想知道在香草卡夫卡中反序列化消息的最佳方法是什么。

我搜索了一段时间,但是我看到的所有示例都是针对http://avro.apache.org/docs/1.9.0/gettingstartedjava.html这样的文件反序列化的,并且不涉及kafka消息部分。

我确实使用了avro maven插件,并将我的模式转换为pojo类。

任何建议都值得赞赏!

谢谢

2 个答案:

答案 0 :(得分:2)

您需要撤消生产者的过程。如果生产者使用了模式注册表序列化器,那么无论您自己拥有模式如何,都将需要反序列化器的注册表。

在不知道串行器逻辑的情况下,编写反序列化器将很困难。

简短的答案是,您将使用BinaryDecoder-just like Confluent does

答案 1 :(得分:0)

为此,我最终使用了SpecificDatumReader

完整的示例可以在https://cwiki.apache.org/confluence/display/AVRO/FAQ上找到。

但是这个想法是,只要您具有avro模式(或avro tools使用相应模式编译的对象的类),就可以使用上述方法反序列化该类型的消息字节[]。