如何增加Spring Kafka Consumer每批消费的消息数?
Posted
技术标签:
【中文标题】如何增加Spring Kafka Consumer每批消费的消息数?【英文标题】:How to increase the number of messages consumed by Spring Kafka Consumer in each batch? 【发布时间】:2018-10-21 07:42:44 【问题描述】:我正在构建一个 Kafka Consumer 应用程序,它使用来自 Kafka 主题的消息并执行数据库更新任务。消息每天大批量生成一次 - 因此主题在 10 分钟内加载了大约 100 万条消息。该主题有 8 个分区。
Spring Kafka 消费者(使用 @KafkaListener 注释并使用 ConcurrentKafkaListenerContainerFactory)以非常短的批次触发。
批量大小有时只有 1 或 2 条消息。如果它可以一次使用大约 1000 条消息并一起处理它们(例如,我可以在单个更新 SQL 中更新数据库),而不是为每条消息连接到数据库,这将有助于提高性能。
我已经尝试降低工厂的并发性,以避免多个线程消耗更少的消息。
我还将 Kafka 的 server.properties 中的 socket.send.buffer.bytes 属性从 102400 增加到 1024000。
这些步骤并未增加批量大小。
我可以使用其他配置来增加消费者的浴缸尺寸吗?
【问题讨论】:
【参考方案1】:查看 kafka 消费者属性max.poll.records
、fetch.min.bytes
、fetch.max.wait.ms
、fetch.max.bytes
、max.partition.fetch.bytes
。
fetch.min.bytes
和 fetch.max.wait.ms
很可能是您需要的。
【讨论】:
以上是关于如何增加Spring Kafka Consumer每批消费的消息数?的主要内容,如果未能解决你的问题,请参考以下文章
kafka的consumer.properties的group.id到底有啥用