kafka多分区只有一个可以接收消息

时间:2016-04-27 03:47:31

标签: apache-kafka kafka-producer-api

我是kafka的新手。我阅读了快速入门并创建了一个名为' test'有4个分区,但是当向主题发送消息时我发现所有消息都保存在partition-0中,其他三个分区为空为什么?

我的java代码发送消息

    for (int i = 0; i < 100; i++){
         producer.send(new ProducerRecord<String, String>("test", "message",Integer.toString(i)));

    }

1 个答案:

答案 0 :(得分:2)

请参阅javadoc

If no partition is specified but a key is present a partition will be chosen using a hash of the key.

由于您传递的是同一个密钥,因此会将其发送到同一个分区。

for (int i = 0; i < 100; i++){
     producer.send(new ProducerRecord<String, String>("test", "message"+i,Integer.toString(i)));

}

我已将该消息随机化为"message"+i