【发布时间】:2018-03-13 18:03:50
【问题描述】:
我正在研究数据摄取用例,其中数据来自多个 主题,并且必须根据主题名称推送到多个表中。 我试图理解为所有主题设置一个消费者是否有任何 性能差异 每个主题/分区都有一个消费者。 p>
【问题讨论】:
标签: apache-kafka
我正在研究数据摄取用例,其中数据来自多个 主题,并且必须根据主题名称推送到多个表中。 我试图理解为所有主题设置一个消费者是否有任何 性能差异 每个主题/分区都有一个消费者。 p>
【问题讨论】:
标签: apache-kafka
这两种场景之间的性能差异取决于代理、分区的数量以及预期的吞吐量。
当代理、分区和吞吐量的数量很高时,如果所有分区只有一个消费者,它很可能无法处理所有流量。
例如,如果您有 5 个代理,每个代理有 5 个分区,每个分区的流量为 5MB/s:
如果您有一个消费者:它需要与每个代理建立连接,并且必须处理 5 x 5 x 5 MB/s = 125MB/s。根据您的消费者配置,这可能不可行。即使您可以处理 125MB/s,如果您最终添加更多分区,这也不能很好地扩展。
如果您有多个消费者:每个消费者将获取分区的一个子集。如果有 5 个消费者,每个消费者只需处理 25MB/s 的速度,这对于标准 VM 来说很容易实现。
Kafka 的消费者组功能使动态添加消费者变得非常容易。因此,您可以从一个消费者开始,然后在吞吐量增加时添加更多消费者。
【讨论】: