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線程用戶?