我正在编写一个kafka用户,该用户应反序列化来自avro的传入消息。我确实有消息的架构,并且想知道在香草卡夫卡中反序列化消息的最佳方法是什么。
我搜索了一段时间,但是我看到的所有示例都是针对http://avro.apache.org/docs/1.9.0/gettingstartedjava.html
这样的文件反序列化的,并且不涉及kafka消息部分。
我确实使用了avro maven插件,并将我的模式转换为pojo类。
任何建议都值得赞赏!
谢谢
答案 0 :(得分:2)
您需要撤消生产者的过程。如果生产者使用了模式注册表序列化器,那么无论您自己拥有模式如何,都将需要反序列化器的注册表。
在不知道串行器逻辑的情况下,编写反序列化器将很困难。
简短的答案是,您将使用BinaryDecoder-just like Confluent does
答案 1 :(得分:0)
为此,我最终使用了SpecificDatumReader
。
完整的示例可以在https://cwiki.apache.org/confluence/display/AVRO/FAQ上找到。
但是这个想法是,只要您具有avro模式(或avro tools
使用相应模式编译的对象的类),就可以使用上述方法反序列化该类型的消息字节[]。