针对多个主题的一个kafka使用者与针对每个主题/分区的一个使用者

时间:2018-03-13 09:43:36

标签: apache-kafka

我正在研究数据提取用例,其中数据来自多个 主题,并且必须根据主题名称推送到多个表。 我试图理解,如果所有主题都有一个消费者有任何 性能差异 ,每个主题/分区都有一个消费者。

1 个答案:

答案 0 :(得分:1)

这两种情况之间的性能差异取决于代理,分区数量和预期吞吐量。

当经纪人,分区和吞吐量很高时,如果所有分区只有一个消费者,那么它很可能无法应对所有流量。

例如,如果您有5个代理,每个分区有5个分区,每个分区的流量为5MB / s:

  • 如果你有一个消费者:它需要连接到每个代理,并且必须处理5 x 5 x 5 MB / s = 125MB / s。根据您的消费者配置,这可能不可行。即使您可以处理125MB / s,如果您最终添加更多分区,这也无法很好地扩展。

  • 如果您有多个使用者:每个使用者都会获取一部分分区。有5个消费者,每个只需要处理25MB / s,这对于标准VM来说很容易实现。

Kafka的消费者群体功能使得即时添加消费者变得非常容易。因此,您只能从一个消费者开始,并在吞吐量增加时添加更多消息。