我有一个Kafka制片人,基本上做下面的工作。我有一个主题,至少有10个分区,我不在乎他们消费的顺序(我的后端将处理它)。我还将启动至少10个消费者(假设每个消费者都粘在一个分区上)。如果我开始发布消息(使用下面的代码),kafka会处理负载并将消息均匀地放在所有分区中吗?还是我应该引入一个密钥(这对我的应用程序来说并不重要)并自己实现循环?
KeyedMessage<String, String> data = new KeyedMessage<>(topic, txt);
producer.send(data);
producer.close();
有什么想法吗?
1条答案
按热度按时间r6hnlfcb1#
在默认情况下,将使用org.apache.kafka.clients.producer.internals.defaultpartitioner
链接到源代码
根据代码,kafka将在所有分区之间平均分割所有消息