仅在ProducerStream中只对单个分区进行生产的高级生产者

问题描述 投票:0回答:1

我正在尝试向具有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-producer-api node-kafka
1个回答
0
投票

您是否生成带有密钥的消息?在Kafka中,具有相同密钥的消息将发布到同一分区。

© www.soinside.com 2019 - 2024. All rights reserved.