如何增加每批Spring Kafka Consumer消耗的消息数?

Sha*_*P S 1 java apache-kafka spring-boot spring-kafka

我正在构建一个Kafka Consumer应用程序,该应用程序使用来自Kafka Topic的消息并执行数据库更新任务。每天都会大批量生产消息-因此,该主题在10分钟内加载了大约100万条消息。主题有8个分区。

Spring Kafka使用者(用@KafkaListener注释并使用ConcurrentKafkaListenerContainerFactory注释)在极短的时间内触发。

批处理大小有时仅为1或2条消息。如果它可以一次使用大约1000条消息并一起处理(例如,我可以在一个更新SQL中更新数据库),而不是为每条消息连接到数据库,则将有助于提高性能。

我已经尝试在工厂中减少并发,以避免多个线程消耗较少的消息。

我还将Kafka的server.properties中的socket.send.buffer.bytes属性从102400增加到1024000。

这些步骤没有增加批处理大小。

我还有其他配置可以用来增加消费者的浴室大小吗?

Gar*_*ell 7

见卡夫卡的消费特性max.poll.recordsfetch.min.bytesfetch.max.wait.msfetch.max.bytesmax.partition.fetch.bytes

最有可能的fetch.min.bytes并且fetch.max.wait.ms是你所需要的。