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

手动提交偏移量

通常,使用AckMode.MANUALAckMode.MANUAL_IMMEDIATE,必须按顺序确认确认,因为 Kafka 不维护每条记录的状态,只维护每个组/分区的已提交偏移量。 从版本 2.8 开始,您现在可以设置 container 属性asyncAcks,这允许以任何顺序确认轮询返回的记录的确认。 侦听器容器将延迟无序提交,直到收到缺少的确认。 使用者将被暂停(不传送新记录),直到上一次轮询的所有偏移量都已提交。spring-doc.cadn.net.cn

虽然此功能允许应用程序异步处理记录,但应理解,它增加了失败后重复交付的可能性。
什么时候asyncAcks已激活,则无法使用nack()(否定确认) 时提交偏移量。