【问题标题】:One kafka consumer for multiple topics vs one consumer for each topic/partition多个主题的一个 kafka 消费者与每个主题/分区的一个消费者
【发布时间】:2018-03-13 18:03:50
【问题描述】:

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

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    这两种场景之间的性能差异取决于代理、分区的数量以及预期的吞吐量。

    当代理、分区和吞吐量的数量很高时,如果所有分区只有一个消费者,它很可能无法处理所有流量。

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

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

    • 如果您有多个消费者:每个消费者将获取分区的一个子集。如果有 5 个消费者,每个消费者只需处理 25MB/s 的速度,这对于标准 VM 来说很容易实现。

    Kafka 的消费者组功能使动态添加消费者变得非常容易。因此,您可以从一个消费者开始,然后在吞吐量增加时添加更多消费者。

    【讨论】:

      猜你喜欢
      • 2017-01-26
      • 1970-01-01
      • 2020-10-12
      • 2018-12-31
      • 1970-01-01
      • 1970-01-01
      • 2020-05-03
      • 2018-08-31
      • 2017-10-17
      相关资源
      最近更新 更多