升级Kafka至10.1.1后找不到StringDeserializer类的求助
解决Kafka升级后
StringDeserializer找不到的问题 嘿,这个问题我之前帮人排查过,核心问题其实很明确,再结合你升级版本的背景,咱们一步步理清楚:
首先,最直接的错误——包名拼写错了!
你配置里写的org.apache.kafka.abstracts.serialization.StringDeserializer是不对的,正确的包名应该是org.apache.kafka.common.serialization.StringDeserializer,把abstracts改成common就解决了找不到类的核心问题。
然后结合你从10.0.1升级到10.1.1的背景,补充几个需要确认的细节:
- 确保依赖包版本匹配:不管用Maven还是Gradle,要确认
kafka-clients依赖的版本是10.1.1,避免依赖冲突或者旧版本残留。比如Maven的依赖配置应该是:<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>10.1.1</version> </dependency> - 注意代码里的小笔误:你说这是消费者类的配置,但代码里实例化的是
KafkaProducer,如果是消费者逻辑的话,应该用KafkaConsumer,这个细节别忽略,不然后续可能出现其他异常。
最后给你修正后的消费者配置代码参考:
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
其实在Kafka 10.x的全系列版本里,StringDeserializer的包路径一直都是common下的,这次版本升级本身并没有改变这个路径,主要还是拼写错误导致的问题。
内容的提问来源于stack exchange,提问作者Deslyxia
相关产品推荐
相关产品推荐

