You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Kafka中偏移量何时提交?默认AckMode为BATCH时的时机

Spring Kafka Batch AckMode 下的偏移量提交时机

当Spring Kafka的AckMode设为BATCH(这是2.3及以上版本的默认值)时,偏移量是在**@KafkaListener方法成功处理完整个批次之后**才会提交。

具体流程细节:

  • 消费者拉取到一批消息后,会先把整个批次传递给@KafkaListener的处理方法
  • 只有当方法正常执行完成(未抛出任何异常),Spring Kafka才会自动提交该批次中最后一条消息的偏移量
  • 如果处理过程中抛出异常,该批次的偏移量不会被提交,后续会按照配置的重试策略重新处理这批消息

额外说明:

  • 这种与消息处理结果绑定的提交机制,刚好解决了原生Kafka自动提交基于时间调度的弊端,不会出现“提交了还没处理的消息偏移量”的情况
  • 若需要更细粒度的提交控制,可以切换到RECORD(每条消息处理完成后提交)或MANUAL(手动触发提交)模式

内容的提问来源于stack exchange,提问作者Nikita Glukhov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 15:25:16