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到的答案:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值