【问题标题】:Does the number of consumer groups impact Kafka performance消费者组的数量是否会影响 Kafka 的性能
【发布时间】:2016-05-19 16:33:45
【问题描述】:

在尝试深入了解 Kafka 分发模型时,one sentence here from StackOverflow 让我嗡嗡作响,我无法确认也无法否认。

所以,你拥有的订阅者组越多,性能就越低,因为 kafka 需要将消息复制到所有这些组并保证总​​顺序。

据我从 Kafka 文档中了解到,多个消费者群体的行为类似于单一消费者。在代理中没有进行复制,因为每个消费者对于某个分区都有自己的偏移量。那么,组的数量应该不会产生任何显着的开销,所有的数据都在一个地方,只有偏移量不同。对吗?

如果这是正确的,那么实际上没有办法在不影响吞吐量的情况下引入多个不相交的消费者,因为所有消费者总是查询所有分区,并且引入了某种复制。请注意,这与消费者线程的数量无关,线程只会提高消费者性能,据我所知,它们不会干扰代理操作。

【问题讨论】:

    标签: apache-kafka message-queue publish-subscribe messagebroker bigdata


    【解决方案1】:

    它不会影响 kafka 进程的性能,但由于 2 个或更多消费者组意味着从 kafka 服务器读取的次数增加 2 倍或更多倍,因此如果您有很多消费者组,它会影响传出流量的网络利用率。此外,数据主要是从内存中读取的,不会影响性能,因为 ram 比网络通信快得多。

    【讨论】:

    • 谢谢,很好的跟进 :) .
    【解决方案2】:

    我自己找到了答案,它位于 Kafka 0.9 及更高版本的新消费者 API docs 内:

    从概念上讲,您可以将消费者组视为恰好由多个进程组成的单个逻辑订阅者。作为一个多订阅者系统,Kafka 自然支持为给定主题拥有任意数量的消费者组,而无需复制数据(额外的消费者实际上非常便宜)。

    底线:不,多个消费者群体不会降低性能,至少不会显着降低。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-19
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      • 2019-08-08
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      相关资源
      最近更新 更多