spring-kafka AckMode中MANUAL和MANUAL_IMMEDIATE有什么区别

Abb*_*ese 3 apache-kafka kafka-consumer-api spring-kafka

从 spring-docs,我可以看到

MANUAL - 消息侦听器负责确认()确认;之后,应用与 BATCH 相同的语义。

MANUAL_IMMEDIATE - 当侦听器调用 Acknowledgment.acknowledge() 方法时立即提交偏移量。

但是如果侦听器提交偏移量到底有什么区别。为MANUAL模式做了哪些额外的步骤

Gar*_*ell 5

MANUAL - 在处理完最后一次轮询的所有结果后,将确认排队并在一个操作中提交偏移量。

MANUAL_IMMEDIATE - 只要在侦听器线程上执行 ack,就会立即提交偏移量(同步或异步)。

  • 但是,使用批处理侦听器和带有syncCommits的MANUAL_IMMEDIATE,您可以捕获异常;使用 MANUAL 时,错误会将批次发送到错误处理程序。 (2认同)