对于最新稳定版本,请使用Spring for Apache Kafka 4.0.4spring-doc.cadn.net.cn

手动提交偏移量

当使用 AckMode.MANUALAckMode.MANUAL_IMMEDIATE 时,确认必须按顺序进行,因为 Kafka 不为每个记录维护状态,只维护每个 group/partition 的已提交偏移量。 从 2.8 版本开始,现在可以将容器属性设置为 asyncAcks,这允许由 poll 返回的记录的确认可以按任意顺序进行。 监听容器会推迟不按顺序的提交,直到缺少的确认收到。 消费者在所有上一次 poll 的偏移量提交之前会被暂停(不再有新记录被传递)。spring-doc.cadn.net.cn

虽然该功能允许应用程序异步处理记录,但应理解的是,这会增加在发生故障后出现重复投递的可能性。
asyncAcks 被激活时,无法使用 nack()(否定确认)在 提交偏移量 时。