使 Kafka ConcurrentMessageListenerContainer 作为批处理工作

Making Kafka ConcurrentMessageListenerContainer Work as a Batch

在我的应用程序中,我创建了自己的自定义侦听器,以便不使用 @KafkaListener 注释。我配置为收听记录中的消息以记录基地。那是有效的。现在我想转换我的自定义侦听器以批量侦听消息。我是否应该将 ConsumerConfig.MAX_POLL_RECORDS_CONFIG 配置为每次轮询要处理的消息量?我还将我的 AckMode 更改为 BATCH。这就是我需要做的吗?

我知道 ConcurrentKafkaListenerContainerFactory 有 属性“setBatchListener(true)”,但据我了解 Kafka 文档,这种类型的工厂配置仅与 @KafkaListener 注释一起使用。

任何帮助将不胜感激。

只需更改您的侦听器以实施 BatchMessageListener 或其 sub-interfaces 之一。容器将自动检测其类型。

参见Message Listeners

@KafkaListener 代码使用工厂标志来确定要创建哪种类型的侦听器适配器。