我正在使用spring boot 2.1.7.RELEASE和spring-kafka 2.2.7.RELEASE。并且我正在使用@KafkaListener注释创建使用者,并且正在使用该使用者的所有默认设置。
根据apache kafka文档,“ max.poll.records”的默认值为500。
在这里,我试图理解spring是如何处理记录处理的。现在我的问题是,如果我们已经在主题A上发布了500条消息,并且有一个消费者(使用@KafkaListener)订阅了该主题,则
答案 0 :(得分:1)
@KafkaListener
基于KafkaMessageListenerContainer
,进而完全基于ConsumerRecords<K, V> org.apache.kafka.clients.consumer.Consumer.poll(Duration timeout)
API。
您提到的选项与Spring for Apache Kafka无关。即使没有Spring,您也将处理相同的行为。
请参阅返回的ConsumerRecords
,以获取更多有关如何从Kafka提取记录的信息。
使用Kafka,我们获取记录的方式并不重要。仅补偿提交很重要。 但这是另一回事。您需要自己了解Spring for Apache Kafka只是标准Kafka Client的包装。它没有意见如何从主题轮询记录。