我正在研究数据摄取用例,其中数据来自多个 主题,并且必须根据主题名称推送到多个表。我试图理解为所有主题拥有 一个消费者与为每个主题/分区拥有一个消费者有什么性能差异 。
这两种方案之间的性能差异取决于代理、分区的数量和预期吞吐量。
当代理、分区和吞吐量的数量很高时,如果所有分区只有一个消费者,则很可能无法处理所有流量。
例如,如果您有 5 个代理,每个代理有 5 个分区,每个分区的流量为 5MB/s:
如果您有一个消费者:它将需要与每个代理建立连接,并且必须处理 5 x 5 x 5 MB/s = 125MB/s。根据您的消费者配置,这可能不可行。即使您可以处理 125MB/s,如果您最终添加更多分区,也无法很好地扩展。
如果您有多个消费者:每个消费者将获取分区的子集。如果有 5 个消费者,每个消费者只需处理 25MB/s,这对于标准 VM 来说很容易实现。
Kafka 的消费者组功能使得动态添加消费者变得非常容易。因此,您可以从一个消费者开始,然后在吞吐量增加时添加更多消费者。
| 归档时间: |
|
| 查看次数: |
1988 次 |
| 最近记录: |