kafka enable-auto-commit

2020-07-03  本文已影响0人  hehehehe

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();
    }
上一篇 下一篇

猜你喜欢

热点阅读