我正在尝试向具有2个分区的单个主题生成一些消息。因为我使用的是高级生产者,所以我期望所有消息都将均匀地分布在这2个分区中,但是奇怪的是,所有消息都将仅分配给2个分区。(我的Producer流是使用HighLevelProducer创建的)
const { KafkaClient, HighLevelProducer, ProducerStream } = require('kafka-node');
const myProducerStream = ({ kafkaHost, highWaterMark, topic }) => {
const kafkaClient = new KafkaClient({ kafkaHost });
const producer = new HighLevelProducer(kafkaClient);
const options = {
highWaterMark,
kafkaClient,
producer
};
kafkaClient.refreshMetadata([topic], err => {
if (err) throw err;
});
return new ProducerStream(options);
};
您是否生成带有密钥的消息?在Kafka中,具有相同密钥的消息将发布到同一分区。