Kafka

x0fgdtte  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(245)

当我们决定分区时,我们应该按主题来做,还是全主题的决定?如果t1在3个分区上分区,t2在2个分区上分区,那么它们是否都能被1个使用者使用?
或者,如果主题必须由一个使用者使用,那么最好使分区的数量相等?
我这样问是因为可以通过传递主题和分区号来创建高级使用者。
所以我想知道我是否应该只传递给具有相同分区数的构造函数主题?

cwtwac6a

cwtwac6a1#

当我们创建高级使用者时,我们传递的不是分区号,而是消耗线程(流)的预期数量。
答案是肯定的,它们可以被一个消费者消费(如果消费者订阅了这两个主题,那么消费者只打开n个流/预期数量的消费线程(您将其作为参数传递!)。如果n<p(所有主题的所有分区的数目),那么一些流将收集多个分区的数据。如果n>p,一些流将处于非忙等待状态。
最好是p=n,但最好是n>p,因为明天如果出现新的分区,您将准备好承受更大的负载。
我做了一个研究,并创建了一个博客条目

相关问题