Я разработал потребитель на основе Java на основе Java, где у меня есть 100 потоков для каждого экземпляра потребителя, и когда начинается процесс потребления, каждый поток получает раздел (поскольку существует 100 разделов), а потребление готово.Kafka 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 потребителей, но добавление каждого потребителя - операция перебалансировки, которая является дорогостоящей.
Я хотел бы знать, является ли это правильным подходом? Есть ли способ запустить 100-поточного потребителя, используя kafka-node?