【问题标题】:How does adding more consumers increase kafka processing scalability添加更多消费者如何提高 kafka 处理可扩展性
【发布时间】:2019-03-19 11:45:54
【问题描述】:

假设:我的代码使用了扇出模型(单分区多消费者)

生产者将消息M1-M10插入kafka

我启动消费者 1 (C1),它开始处理消息。在 M3 上,我启动了第二个消费者。

消费者 2 (C2) 现在开始处理 M1,然后移动到下一条消息。与此同时,C1 继续。

所以 C1 总是领先于 C2,C2 只是重新处理 C1 已经处理过的相同消息。

因此,添加更多消费者对可扩展性没有任何帮助,或者看起来是这样。我一定是误解了文档。

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    因此,添加更多消费者对可扩展性没有任何帮助

    没错。如果您有多个消费者从同一个分区读取,您将无法实现任何并行性。

    Kafka 中的缩放单位是分区:

    日志中的分区有多种用途。首先,它们允许日志扩展到超出单个服务器的大小。每个单独的分区必须适合托管它的服务器,但一个主题可能有许多分区,因此它可以处理任意数量的数据。其次,它们充当并行单元——稍后会详细介绍。 — Documentation

    因此,为了扩展您描述的情况,您必须对消费者正在阅读的主题进行分区。然后,当您可以添加消费者时,您可以实现并行性。

    【讨论】:

      猜你喜欢
      • 2016-07-12
      • 2023-02-20
      • 2020-03-24
      • 1970-01-01
      • 2020-05-26
      • 2018-11-09
      • 2021-04-24
      • 1970-01-01
      • 2019-11-18
      相关资源
      最近更新 更多