一个KafkaConsumer监听多个分区VS多个KafkaConsumers监听多个分区

时间:2019-03-21 14:03:10

标签: apache-kafka

我有十个卡夫卡制作人,每个人都写一个主题的不同分区。

我不知道哪个更有效。

让一个消费者在听10个分区,还是让10个消费者在听不同的分区?

2 个答案:

答案 0 :(得分:1)

通常,如果您有多个使用者,则将有更多的吞吐量,因为您将有多个线程/应用程序从kafka集群中提取数据,这意味着您将能够在多个内核之间并行化,也许还有多个服务器。

但是,您还需要考虑要完成的工作。一个进程/应用程序是否需要查看所有数据?消息是否彼此独立?所有这些都会告诉您应如何设计您的应用程序。

在默认配置中,主题的所有可用分区将最终在具有相同组ID的所有使用者之间分配。因此,您可能有一个使用者,它将自动获取该主题的所有分区。或者,您可以实例化十个使用者,在这种情况下,每个使用者将仅获得一个分区。

答案 1 :(得分:0)

这两种方式之间没有区别。但是请记住,当您有十个消费者时,将每个消费者连接到Kafka的开销很大。

如果可以由一个使用者使用不同的分区,那么说来就足够了。