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

Apache kafka 消费者群体的数量是否会影响卡夫卡的表现,apache-kafka,message-queue,publish-subscribe,messagebroker,bigdata,Apache Kafka,Message Queue,Publish Subscribe,Messagebroker,Bigdata,当我试图深入理解卡夫卡的发行模式时,我兴奋不已,我无法得到确认或否认 因此,用户组越多,性能就越低,因为kafka需要将消息复制到所有这些组并保证总的顺序 据我从卡夫卡文档中了解,多个消费者群体的行为与单一消费者类似。在代理中不进行复制,因为每个使用者对于某个分区都有自己的偏移量。那么,组的数量应该不会带来任何显著的开销,所有的数据都在一个地方,只是偏移量不同。对吗 如果这是正确的,那么实际上就不可能在不影响吞吐量的情况下引入多个不相交的使用者,因为所有使用者总是查询所有分区,并且引入了某种复制

当我试图深入理解卡夫卡的发行模式时,我兴奋不已,我无法得到确认或否认

因此,用户组越多,性能就越低,因为kafka需要将消息复制到所有这些组并保证总的顺序

据我从卡夫卡文档中了解,多个消费者群体的行为与单一消费者类似。在代理中不进行复制,因为每个使用者对于某个分区都有自己的偏移量。那么,组的数量应该不会带来任何显著的开销,所有的数据都在一个地方,只是偏移量不同。对吗


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

我自己也找到了答案,它位于Kafka 0.9及之后的新使用者中:

从概念上讲,您可以将使用者组视为碰巧由多个进程组成的单个逻辑订阅者。作为一个多用户系统,卡夫卡自然支持在不复制数据的情况下为给定主题拥有任意数量的消费者群体(额外的消费者实际上相当便宜)


一句话:不,多个消费者组不会降低性能,至少不会显著降低性能。

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

谢谢,很好的跟进:)。