首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >何时在Springboot中在KafkaListener.java中提交偏移量?

何时在Springboot中在KafkaListener.java中提交偏移量?
EN

Stack Overflow用户
提问于 2021-08-08 21:04:00
回答 1查看 912关注 0票数 2

我的问题有两部分。

在Springboot下面的

  1. 中,KafkaListener实现什么时候才能提交偏移策略auto-offset-reset: latestenable-auto-commit: true?是在使用者接收消息之后还是在实现KafkaListener的整个方法完成之后?

KafkaConsumer.java

代码语言:javascript
复制
@KafkaListener(topics = "${spring.kafka.consumer.topic}")
    public ResponseEntity<String> consume(String message) {
        log.info("Message recieved from Kafka topic {}", message); // offset committed HERE?
        KafkaResponse kafkaResponse = new Gson().fromJson(message, KafkaResponse.class);
        myBusinessService.processKafkaResponse(kafkaResponse);
        return new ResponseEntity<>("Successfully Received", HttpStatus.OK);// OR offset committed HERE?
    }

  1. In application.yml中哪些语句为True/False/正确答案是什么?:

max-轮询记录:100个最大轮询间隔ms: 200000启用自动提交:真正的自动提交间隔:3000个自动偏移复位:最新隔离级别: READ_UNCOMMITTED提取-最大字节: 52428800

如果卡夫卡消费者在3秒前崩溃,那么在这3 seconds?

  • Between seconds?

  • Between期间处理的任何记录都不会提交偏移量,auto-commit-interval: 3000 Kafka消费者肯定会在间隔200000秒后轮询代理,即使消费者还没有在3000 seconds?

  • Between中提交当前的一批偏移量,max-poll-records: 100fetch-max-bytes: 52428800的组合如果第99条记录超过52428800字节?H 228F 229则会占据优先权。

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-09 16:10:02

最好不要使用enable.auto.commit=true。Spring以更确定的方式提交偏移,或者在处理了来自投票的所有记录之后(默认- AckMode.BATCH),或者在处理了每个记录之后,AckMode.RECORD

enable.auto.commit在下一个poll()之前不会提交,只有当auto.commit.interval通过时才会提交。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68704750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档