手动提交偏移量
当使用 AckMode.MANUAL 或 AckMode.MANUAL_IMMEDIATE 时,确认必须按顺序进行,因为 Kafka 不为每个记录维护状态,只维护每个 group/partition 的已提交偏移量。
从 2.8 版本开始,现在可以将容器属性设置为 asyncAcks,这允许由 poll 返回的记录的确认可以按任意顺序进行。
监听容器会推迟不按顺序的提交,直到缺少的确认收到。
消费者在所有上一次 poll 的偏移量提交之前会被暂停(不再有新记录被传递)。
| 虽然该功能允许应用程序异步处理记录,但应理解的是,这会增加在发生故障后出现重复投递的可能性。 |
当 asyncAcks 被激活时,无法使用 nack()(否定确认)在 提交偏移量 时。 |