如果我们在Kafka有一个4个分区的主题。有4个发布者在同一主题中发布消息。所有publisher发布不同数量的消息,如publisher1发布w消息,publisher2发布x消息,publisher3发布y消息,publisher4发布z消息。每个分区中有多少条消息?
hrysbysz1#
除非您的生产者没有明确地写入某些分区(通过在构造producerrecord时提供分区号),否则每个生产者生成的消息(默认情况下)将基于其密钥到达其中一个分区。内部使用以下逻辑:
kafka.common.utils.Utils.toPositive(Utils.murmur2(keyBytes)) % numPartitions;
哪里 keyBytes 是密钥和 numPartitions 你的情况是4。如果您不使用任何密钥,它将以循环方式分发。因此,在不知道正在使用的密钥(如果使用了密钥)的情况下,不可能预测每个分区中有多少条消息。更多关于消息分区的信息在这里给出。
keyBytes
numPartitions
1条答案
按热度按时间hrysbysz1#
除非您的生产者没有明确地写入某些分区(通过在构造producerrecord时提供分区号),否则每个生产者生成的消息(默认情况下)将基于其密钥到达其中一个分区。内部使用以下逻辑:
哪里
keyBytes
是密钥和numPartitions
你的情况是4。如果您不使用任何密钥,它将以循环方式分发。因此,在不知道正在使用的密钥(如果使用了密钥)的情况下,不可能预测每个分区中有多少条消息。
更多关于消息分区的信息在这里给出。