【发布时间】:2019-06-21 05:51:39
【问题描述】:
我们有一个 kafka 消费者,它不断地轮询 kafka 主题并处理消息。
我们面临的问题是我们应该为max.poll.records 赋予多少价值。
为了处理每条消息,我们有 3 个休息电话。
我正在做的是使用并行流将消息作为列表和处理。
实例有 2GB 内存空间,max.poll.records 是 8。
所以,现在如果我增加max.poll.records,那么消息处理时间会增加,当max.poll.records 为 4 时效果最好。
您能否说明一下我们如何使用 1 个使用 1 个分区的实例来增加消息的并行处理,这意味着而不是获取
8 条消息,我还能尝试使其处理大约 5 条消息。
更新:- 下面是内存配置,我在pcf中部署独立应用。
JVM内存配置:
-Xmx1422566K -Xss1M -XX:ReservedCodeCacheSize=240M -XX:MaxDirectMemorySize=10M -XX:MaxMetaspaceSize=162585K
【问题讨论】:
-
你的问题不是很清楚。您想要实现什么?并行处理是什么意思?在 Kafka 中,通过分区和多个消费者实例来提高并行度。
-
我的意思是说,我想从 kafka 获取大约 20 条消息并并行处理它们。假设我有一个消费者,只有一个分区。所以,我想增加 max.poll.records 并且不影响整体消息处理时间。
标签: java multithreading apache-kafka kafka-consumer-api