https://www.jianshu.com/p/36fc14c68aac
kafka模块提供了一些开箱即用的功能,但大部分特性均来自spring-kafka。spring-kafka针对kafka的操作做了高级抽象
提交方式
spring-kafka的消费者可以指定其提交方式,默认为自动提交。可以通过修改enable-auto-commit配置来开启手动提交。需注意的是,仅开启此选项,listener的默认应答方式ack-mode为batch,仍是自动提交,只不过变成了每批记录传递给监听器之后批量提交。如果需要变为显示提交,需要设置ack-mode为MANUAL或MANUAL_IMMEDIATE,并在监听器中加入Acknowledgment参数,调用其acknowledgment方法进行手动提交。
kafka:
consumer:
enable-auto-commit: false
listener:
ack-mode: manual_immediate
@KafkaListener(topics = "acknowledgment-test")
public void listen(UserModel userModel, Acknowledgment acknowledgment) {
System.out.println(userModel);
acknowledgment.acknowledge();
}
网友评论