1
我已经开发了一个基于Java卡夫卡消费者在那里我有100个线程为每个消费者实例和消费过程开始时,每个线程都有一个分区(因为有100个分区)和消费已经完成了。卡夫卡的NodeJS单线程模型 - 将消费者
我打算转和的NodeJS使用卡夫卡节点作为客户端库,我如下所述消耗话题:
var kafka = require('kafka-node');
var HighLevelConsumer = kafka.HighLevelConsumer;
var Client = kafka.Client;
var client = new Client('xx.xx.xx.xxx:6080');
var topics = [ { topic: "test_1" }];
var options = {
groupId: 'group1',
autoCommit: true,
autoCommitMsgCount: 100,
autoCommitIntervalMs: 5000,
fetchMaxWaitMs: 100,
fetchMinBytes: 1,
fetchMaxBytes: 1024 * 10,
fromOffset: false,
fromBeginning: false
};
var consumer = new HighLevelConsumer(client, topics, options);
consumer.on('message', function (message) {
console.log(message);
});
consumer.on('error', function (err) {
console.log('error', err);
});
}
但这里的问题是,这是唯一一个消费者。但是,如果我添加多个nodejs进程,我可以完成100个消费者,但添加每个消费者都是一个昂贵的重新平衡操作。
我想知道这是否是正确的方法?有没有一种方法可以触发使用kafka-node的100线程用户?