我的问题有两部分。
在Springboot下面的
auto-offset-reset: latest和enable-auto-commit: true?是在使用者接收消息之后还是在实现KafkaListener的整个方法完成之后?KafkaConsumer.java
@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?
}application.yml中哪些语句为True/False/正确答案是什么?:max-轮询记录:100个最大轮询间隔ms: 200000启用自动提交:真正的自动提交间隔:3000个自动偏移复位:最新隔离级别: READ_UNCOMMITTED提取-最大字节: 52428800
如果卡夫卡消费者在3秒前崩溃,那么在这3 seconds?
auto-commit-interval: 3000 Kafka消费者肯定会在间隔200000秒后轮询代理,即使消费者还没有在3000 seconds?
max-poll-records: 100和fetch-max-bytes: 52428800的组合如果第99条记录超过52428800字节?H 228F 229则会占据优先权。提前感谢!
发布于 2021-08-09 16:10:02
最好不要使用enable.auto.commit=true。Spring以更确定的方式提交偏移,或者在处理了来自投票的所有记录之后(默认- AckMode.BATCH),或者在处理了每个记录之后,AckMode.RECORD。
enable.auto.commit在下一个poll()之前不会提交,只有当auto.commit.interval通过时才会提交。
https://stackoverflow.com/questions/68704750
复制相似问题