使用主题和味精键,Kafka根据以下内容分配主题分区:
... Utils.Murmur2(bytes) % numPartitions ....
现在,找到murmur2代码非常简单。但是,murmur2需要一个可以改变运行的种子。
我的问题:例如字节序列,如何计算具有相同密钥字节的Kafka 将向哪个分区发送消息?假设分区一致。
有了此信息,我可以在应用程序启动时将一些信息预先缓存在不同的分区侦听器中。
答案 0 :(得分:0)
Kafka中的种子是一致的。您可以在源代码中找到它
因此,Utils.toPositive(Utils.murmur2(bytes)) % numPartitions
将是您所需要的全部