Error deserializing Avro message for id -1

Error deserializing Avro message for id -1

最近博主在工作中遇到过这种错误。

分析 

该错误是由于kafka反序列化消息失败导致的。至于为啥失败,这得从项目说起。

话说博主接了一个项目,该项目由其他项目迁移过来修修补补,kafka消息监听也有很多。

于是乎,遇到新需求时,都是拷贝一份kafka配置过来,其中一份配置长这样:

props.put("key.deserializer",
                "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer",
                "io.confluent.kafka.serializers.KafkaAvroDeserializer");
props.put("security.protocol", "SASL_PLAINTEXT");
props.put("sasl.mechanism", "PLAIN");
props.put("schema.registry.url", srURL);

虽然没见过KafkaAvroDeserializer,但是对于前辈的代码也不敢轻易修改,怕搞成这样:

于是就有了别人producer用的另一种序列化类,我这边反序列化类没对应上

org.apache.kafka.common.errors.SerializationException: Error deserializing Avro message for id -1
org.apache.kafka.common.errors.SerializationException: Unknown magic byte!

解决

1、问kafka producer用的什么序列化类

2、 修改对应value.deserializer

props.put("value.deserializer", "改成你问好的类全路径");

贴一个google到的答案:

 

posted @ 2021-03-02 01:23  陈旭园  阅读(43)  评论(0)    收藏  举报  来源