Spring Cloud Stream - 批量接收消息

Spring Cloud Stream - Batch receiving of messages

我想定期从 Kafka 主题中获取一批消息(比如 10000 条消息)(以便一次批量处理所有 10k 条记录,而不是一条一条地处理)。

有没有办法在 Spring 云流处理器中实现这一点?如果是这样,是否有任何片段或示例可供我参考?

谢谢

嗯,不幸的是,spring.cloud.stream.kafka.bindings.TARGET.consumer. 级别上仍然没有 KafkaMessageDrivenChannelAdapter.ListenerMode.batch 支持。欢迎就此事提出问题。

同时,作为一种解决方法,我建议使用 Spring 集成 Aggregator 作为 Kafka 主题消费者,以便在应用程序级别真正批量记录。然后才发送它们进行处理。

好吧,另一种解决方法可能是手动使用 Spring Integration Kafka (KafkaMessageDrivenChannelAdapter),而不是 Kafka Binder。或者只使用 Spring Kafka 及其 @KafkaListenerConcurrentKafkaListenerContainerFactory bean 以及适当的 batchListener 选项。