Kafka:同一个键(字符串)是否可以解析为Kafka中的多个分区?

m1m5dgzv  于 2021-06-06  发布在  Kafka
关注(0)|答案(0)|浏览(186)

在kafka中创建producer record时,我们从应用程序中读取传入的记录,并使用用户id(作为字符串)作为producer record的键。应用程序每天处理数千个用户id。
我们注意到具有相同密钥(z13284910042467345-0)的记录大多数时候被发送到同一分区(分区2),但有时被发送到分区1和0。在Kafka,我们不使用custompartitioner,这可能吗?我查看了源代码,他们对key%partition count进行哈希运算以得到分区,但不明白为什么同一个键Map到不同的分区。
p、 s:还查看了源数据(包含用户ID)中的任何异常,但找不到任何东西。

if (partitionKey != null && partitionKey.length() > 0){
        kafkaProps = kafkaConfigService.getProps(kafkaConfigService.getKafkaMode());
        record = new ProducerRecord(topicName, partitionKey, data);
    } else {
        LOG.error("partitionKey is null. Choosing a random partition");
        kafkaProps = kafkaConfigService.getProps(kafkaConfigService.getKafkaMode());
        record = new ProducerRecord(topicName, data);
    }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题