【kafka 异常】使用 Spring-kafka 遇到的坑
作者:石臻臻,CSDN 博客之星 Top5、Kafka Contributor、nacos Contributor、华为云 MVP,腾讯云 TVP,滴滴 Kafka 技术专家、 KnowStreaming。
KnowStreaming 是滴滴开源的Kafka运维管控平台, 有兴趣一起参与参与开发的同学,但是怕自己能力不够的同学,可以联系我,当你导师带你参与开源! 。
CORRUPT_MESSAGE
这个错误一般是压缩策略为 cleanup.policy=compact 的情况下,key 不能为空
查看一下压缩策略
Configs:cleanup.policy=compact
:
然后再检查一下自己发送消息的时候是不是没有传 key
问题堆栈信息
问题原因
解决方案
问题堆栈信息
问题原因
不能再配置中既配置
kafka.consumer.enable-auto-commit=true
自动提交; 然后又在监听器中使用手动提交
例如:
解决方法:
将自动提交关掉,或者去掉手动提交;如果你想他们都同时存在,某些情况自动提交;某些情况手动提交; 那你创建 一个新的
consumerFactory
将它的是否自动提交设置为 false;比如
消费者监听的时候 指定对应的 容器工厂就行了kafkaManualAckListenerContainerFactory
问题堆栈信息
问题原因
官网描述The client.id property (if set) is appended with -n where n is the consumer instance that corresponds to the concurrency. This is required to provide unique names for MBeans when JMX is enabled.意思是这个 id 在 JMX 中注册需要 id 名唯一;不要重复了;
解决方法:
将监听器的 id 修改掉为唯一值 或者 消费者的全局配置属性中不要知道 client-id ;则系统会自动创建不重复的 client-id
版权声明: 本文为 InfoQ 作者【石臻臻的杂货铺】的原创文章。
原文链接:【http://xie.infoq.cn/article/50ac67fcf7ad73178ded51c49】。未经作者许可,禁止转载。
评论