如何知道哪个关键将去什么分区?

yduiuuwa  于 2021-06-05  发布在  Kafka
关注(0)|答案(1)|浏览(222)

我知道 kafka console producer 命令和它是相当方便的。我想知道,有没有一种方法可以确定,当我们也有密钥时,哪个密钥会转到哪个分区?假设我们在kafka主题中有10个分区,那么生产者将如何决定密钥将转到哪个分区?
我想它可能会有用 key.toString.hashCode() % (num_of_partitons) ,但我不认为这是Kafka游戏机生产者雇用的方式。
我们能检查一下数据将发送到哪个分区生产者吗?

wvt8vs2t

wvt8vs2t1#

如果使用默认partioner,则它不会对keys字符串值进行哈希编码,而是使用一个multirre2哈希算法,如org.apache.kafka.clients.producer.internals.defaultpartitioner代码所示:

Utils.toPositive(Utils.murmur2(keyBytes)) % numPartitions;

算法的实现可以在这里找到。

相关问题