介绍
spring.kafka.listener.ack-mode 配置 提交策略
值在AckMode枚举类中,如下:
public enum AckMode {
RECORD, //每处理一个消息,就提交一次
BATCH, //将上一次poll得到消息进行提交
TIME, //达到段时间间隔,就提交
COUNT, //达到次数,就提交
COUNT_TIME, //达到次数和一段时间间隔,就提交
MANUAL // 手动提交
MANUAL_IMMEDIATE //每处理一条消息就提交一次
}
分为两类:
spring-kafak负责提交
RECORD:每处理一个消息,就提交一次。和MANUAL_IMMEDIATE类似,只是这里是通过spring-kafka自己操作,而MsManualImmediateAck需要我们自己在代码里面调用Acknowledgment#acknowledge
BATCH:将上一次poll得到消息进行提交。和MANUAL类似,BATH是通过spring-kafka操作,而MANUAL模式是用户自己通过调用Acknowledgment#acknowledge来执行。
TIME:达到段时间间隔,就提交
COUNT:达到次数,就提交
COUNT_TIME:达到次数和时间间隔两个条件,就提交
手动提交,通过在代码里面调用
Acknowledgment#acknowledge()进行提交。MANUAL:调用
Acknowledgment#acknowledge可以先放置到offts中,到时候在processCommits中进行处理。MANUAL_IMMEDIATE:处理完消息,调用
Acknowledgment#acknowledge执行立刻提交。