我有十个卡夫卡制作人,每个人都写一个主题的不同分区。
我不知道哪个更有效。
让一个消费者在听10个分区,还是让10个消费者在听不同的分区?
答案 0 :(得分:1)
通常,如果您有多个使用者,则将有更多的吞吐量,因为您将有多个线程/应用程序从kafka集群中提取数据,这意味着您将能够在多个内核之间并行化,也许还有多个服务器。
但是,您还需要考虑要完成的工作。一个进程/应用程序是否需要查看所有数据?消息是否彼此独立?所有这些都会告诉您应如何设计您的应用程序。
在默认配置中,主题的所有可用分区将最终在具有相同组ID的所有使用者之间分配。因此,您可能有一个使用者,它将自动获取该主题的所有分区。或者,您可以实例化十个使用者,在这种情况下,每个使用者将仅获得一个分区。
答案 1 :(得分:0)
这两种方式之间没有区别。但是请记住,当您有十个消费者时,将每个消费者连接到Kafka的开销很大。
如果可以由一个使用者使用不同的分区,那么说来就足够了。