Kafka分区中的消息是如何分布的?

ogq8wdun  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(387)

如果我们在Kafka有一个4个分区的主题。有4个发布者在同一主题中发布消息。
所有publisher发布不同数量的消息,如publisher1发布w消息,publisher2发布x消息,publisher3发布y消息,publisher4发布z消息。
每个分区中有多少条消息?

hrysbysz

hrysbysz1#

除非您的生产者没有明确地写入某些分区(通过在构造producerrecord时提供分区号),否则每个生产者生成的消息(默认情况下)将基于其密钥到达其中一个分区。内部使用以下逻辑:

kafka.common.utils.Utils.toPositive(Utils.murmur2(keyBytes)) % numPartitions;

哪里 keyBytes 是密钥和 numPartitions 你的情况是4。如果您不使用任何密钥,它将以循环方式分发。
因此,在不知道正在使用的密钥(如果使用了密钥)的情况下,不可能预测每个分区中有多少条消息。
更多关于消息分区的信息在这里给出。

相关问题