Kafka分区意义
Kafka partitions meaning
当我们决定分区时,我们应该在每个主题的基础上做,还是在主题范围内做决定?
如果 T1 在 3 个分区上分区,
和 T2 分区在 2 个分区上,
它们都可以被 1 个消费者消费吗?
或者如果主题必须由 1 个消费者消费,那么最好制作相同数量的分区?
我这么问是因为可以通过传递主题和分区号来创建高级消费者。
所以我想知道我是否应该只将具有相同分区号的主题传递给该构造函数?
当我们创建高级消费者时,我们传递的不是分区号,而是消费线程(流)的预期数量。
答案是肯定的,它们可以被1个消费者消费。
(如果该消费者订阅了两个主题)
消费者只打开 N streams/intended 个消费线程(你把它作为参数传递!)。
如果 N < P(所有主题的所有分区的数量),那么一些流将收集几个分区的数据。如果 N > P,则部分流将处于非忙等待状态。
P=N 是可取的,但 N > P 更好,因为明天如果出现新分区 - 您将准备好进行更大的负载。
我对此进行了研究并创建了一个博客entry
当我们决定分区时,我们应该在每个主题的基础上做,还是在主题范围内做决定? 如果 T1 在 3 个分区上分区, 和 T2 分区在 2 个分区上, 它们都可以被 1 个消费者消费吗?
或者如果主题必须由 1 个消费者消费,那么最好制作相同数量的分区?
我这么问是因为可以通过传递主题和分区号来创建高级消费者。
所以我想知道我是否应该只将具有相同分区号的主题传递给该构造函数?
当我们创建高级消费者时,我们传递的不是分区号,而是消费线程(流)的预期数量。
答案是肯定的,它们可以被1个消费者消费。 (如果该消费者订阅了两个主题) 消费者只打开 N streams/intended 个消费线程(你把它作为参数传递!)。 如果 N < P(所有主题的所有分区的数量),那么一些流将收集几个分区的数据。如果 N > P,则部分流将处于非忙等待状态。
P=N 是可取的,但 N > P 更好,因为明天如果出现新分区 - 您将准备好进行更大的负载。
我对此进行了研究并创建了一个博客entry