消费者群体的数量对Kafka性能有影响吗

Does the number of consumer groups impact Kafka performance

在试图深入了解 Kafka 分布模型时,one sentence here from Whosebug 让我嗡嗡作响,我无法得到确认也无法否认。

So, the more subscriber groups you have, the lower the performance is, as kafka needs to replicate the messages to all those groups and guarantee the total order.

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

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

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

Conceptually you can think of a consumer group as being a single logical subscriber that happens to be made up of multiple processes. As a multi-subscriber system, Kafka naturally supports having any number of consumer groups for a given topic without duplicating data (additional consumers are actually quite cheap).

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

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