带有@KafkaListener注释的kafka使用者如何处理max.poll.records



我使用的是spring-boot 2.1.7.RELEASE和spring-kafka 2.2.7.RELEASE.我使用@KafkaListener注释创建一个使用者,并且我使用使用者的所有默认设置。

根据apachekafka文档,"max.poll.records"的默认值是500。

在这里,我试图了解spring是如何处理记录处理的。现在我的问题是,如果我们已经在主题a上发布了500条消息,并且有一个消费者(使用@KafkaListener(订阅了这个主题,

  1. 这个spring-listener是会获取所有这500条记录,然后在将一条接一条的记录传递给用@KafkaListener注释的方法之前进行某种缓存,还是一次只提取一条记录,并将其传递给用@cafkaListener注记的方法

@KafkaListener基于KafkaMessageListenerContainer,而完全基于ConsumerRecords<K, V> org.apache.kafka.clients.consumer.Consumer.poll(Duration timeout)API。

您提到的选项与Spring for Apache Kafka无关。即使没有Spring,您也会处理相同的行为。

有关如何从Kafka中提取记录的更多信息,请参阅返回的ConsumerRecords

对于卡夫卡来说,我们如何获取记录并不重要。只有抵消承诺才重要。但情况不同。您需要自己理解Spring for Apache Kafka只是标准Kafka客户端的一个包装器。它不会对如何从主题中投票记录发表意见。

相关内容

  • 没有找到相关文章

最新更新