我正在研究数据提取用例,其中数据来自多个主题,并且必须根据主题名称推送到多个表.我试图了解将所有主题的一个消费者与每个主题/分区有一个消费者有任何性能差异. 最佳答案 这两种方案之间的性能差异取决于代理,分区和预期吞吐量的数量.
当代理,分区和吞吐量很高时,如果所有分区只有一个消费者,那么它很可能无法应对所有流量.
例如,如果您有5个代理,每个分区有5个分区,每个分区的流量为5MB / s:
>如果你有一个消费者:它需要连接到每个代理,并且必须处理5 x 5 x 5 MB / s = 125MB / s.根据您的消费者配置,这可能不可行.即使您可以处理125MB / s,如果您最终添加更多分区,这也无法很好地扩展.
>如果您有多个消费者:每个消费者将获取分区的子集.有5个消费者,每个只需要处理25MB / s,这对于标准VM来说很容易实现.
Kafka的消费者群体功能使得即时添加消费者变得非常容易.因此,您只能从一个消费者开始,并在吞吐量增加时添加更多消费者.