spring kafka 手动提交区别

  • MANUAL 模式

    • 提交时机:在监听器方法(即处理消息的方法)执行完毕后,偏移量不会自动提交。您需要在监听器方法中显式调用 Acknowledgment.acknowledge() 方法来提交偏移量。
    • 行为:调用 Acknowledgment.acknowledge() 后,Spring Kafka 会在当前事务(如果有)提交后提交偏移量。如果没有事务,偏移量会立即提交。

    MANUAL_IMMEDIATE 模式

    • 提交时机:在监听器方法中调用 Acknowledgment.acknowledge() 时,偏移量会立即提交,无论当前事务状态如何。
    • 行为:调用 Acknowledgment.acknowledge() 后,偏移量会立即提交,即使当前事务未提交。

    哪种模式更接近原生 consumer.commitSync()

    原生的 consumer.commitSync() 方法会立即同步提交偏移量,无论当前事务状态如何。因此,MANUAL_IMMEDIATE 模式更接近原生的 consumer.commitSync() 行为。

posted @ 2024-11-21 13:59  星云惊蛰  阅读(51)  评论(0)    收藏  举报