消费者群体的数量是否会影响卡夫卡的表现

时间:2016-02-09 15:50:58

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

在试图深入了解Kafka发行模式的同时,one sentence here from StackOverflow让我嗡嗡作响,我无法得到确认,也无法否认。

  

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

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

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

2 个答案:

答案 0 :(得分:2)

我自己找到了一个答案,它位于新的消费者API docs内,适用于Kafka 0.9以及之后:

  

从概念上讲,您可以将消费者群体视为恰好由多个流程组成的单个逻辑订阅者。作为一个多用户系统,Kafka自然支持在没有重复数据的情况下为给定主题设置任意数量的消费者群体(其他消费者实际上相当便宜)。

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

答案 1 :(得分:1)

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