我正在使用 Kafka Node 库,并测试高级生产者。
我创建了一个包含 10 个分区的主题“HLPTestInput”,并编写了一个函数以每秒生成一次。
生产者写入分区 0、2、4、6 和 8,但不写入奇数分区。
奇怪的是,当我从这个主题消费并生产到第二个主题“HLPTestInputFromConsumer”时,它有 5 个分区,消息被写入所有分区。
有没有我缺少的配置?
const kafka = require('kafka-node'),
HighLevelProducer = kafka.HighLevelProducer,
ConsumerGroup = kafka.ConsumerGroup,
client = new kafka.KafkaClient({kafkaHost: 'smc-dev.silverbolt.lab:9092'}),
producer = new HighLevelProducer(client),
consumer = new ConsumerGroup(
{
kafkaHost: 'smc-dev.silverbolt.lab:9092',
groupId: 'testGroup'
},
'HLPTestInput'
);
let index = 0;
setInterval(() => {
producer.send([{
topic: 'HLPTestInput',
messages: [index]
}], (err, data) => {
console.log('produced', data);
});
index++;
}, 1000);
consumer.on('message', (message) => {
console.log('consumed', message);
producer.send([{
topic: 'HLPTestInputFromConsumer',
messages: [message]
}], (err, data) => {
console.log('produced to secondary', data);
});
});