spring kafka 手动提交区别
-
MANUAL模式- 提交时机:在监听器方法(即处理消息的方法)执行完毕后,偏移量不会自动提交。您需要在监听器方法中显式调用
Acknowledgment.acknowledge()方法来提交偏移量。 - 行为:调用
Acknowledgment.acknowledge()后,Spring Kafka 会在当前事务(如果有)提交后提交偏移量。如果没有事务,偏移量会立即提交。
MANUAL_IMMEDIATE模式- 提交时机:在监听器方法中调用
Acknowledgment.acknowledge()时,偏移量会立即提交,无论当前事务状态如何。 - 行为:调用
Acknowledgment.acknowledge()后,偏移量会立即提交,即使当前事务未提交。
哪种模式更接近原生
consumer.commitSync()?原生的
consumer.commitSync()方法会立即同步提交偏移量,无论当前事务状态如何。因此,MANUAL_IMMEDIATE模式更接近原生的consumer.commitSync()行为。 - 提交时机:在监听器方法(即处理消息的方法)执行完毕后,偏移量不会自动提交。您需要在监听器方法中显式调用

浙公网安备 33010602011771号