kafka手动提交时异常消费的坑

在consumer端enable.auto.commit设置为false时

 

正常情况时通过调用ack.acknowledge();(spring-kafka,官方kafka不是这个接口)来进行offect的提交,但是如果发生异常的情况下,offect没有触发提交,这时kafka是不会重复发消息的,除非这时候系统重启,或者consumer端重置

并且在这种情况下,如果后面的消息被正常消费了,那么异常这个消息的offect就直接被覆盖过去了,这条记录就丢失不会再被消费

以上表述文字通过代码实测

 

具体详细的见

 

https://www.cnblogs.com/xuwujing/p/8432984.html

posted @ 2022-04-21 17:00  MRLL  阅读(1114)  评论(0编辑  收藏  举报