我有一个Spring Boot应用程序,其中只有一个Kafka消费者。
我使用了DefaultKafkaConsumerFactory和默认的消费者配置。我有一个ConcurrentListenerContainerFactory,其中并发设置为1,并且我有一个使用@KafkaListener注解的方法。
我正在监听一个有3个分区的主题,并且我有3个这样的消费者部署在不同的应用程序中。因此,每个消费者都在监听一个分区。
假设在幕后调用了消费者的轮询,并获取了40条记录。那么每个记录是否按顺序提供给使用@KafkaListener注释的方法,即提供记录1,等待方法完成处理,提供记录2,等待方法完成处理,依此类推。
上述情况是否发生,还是对于每个获得的记录,都会创建一个单独的线程,并在单独的线程上调用方法,以便主线程不被阻塞,可以更快地轮询记录。
我还想更清楚地了解消息监听器容器和最终消息监听器是什么。
先行致谢。
max.poll.records
和max.poll.interval.ms
,以便在处理轮询结果时监听器不会超过后者。 - Gary Russell