【发布时间】: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。
这些步骤并未增加批量大小。
我可以使用其他配置来增加消费者的浴缸尺寸吗?
【问题讨论】:
标签: java spring-boot apache-kafka spring-kafka