gpt4 book ai didi

node.js - Kafka Nodejs单线程模型-添加消费者

转载 作者:太空宇宙 更新时间:2023-11-04 02:22:59 29 4
gpt4 key购买 nike

我开发了一个基于Java的Kafka消费者,其中每个消费者实例有100个线程,当消费过程开始时,每个线程都会获得一个分区(因为有100个分区)并且消费完成。

我计划切换到 Nodejs 并使用 kafka-node 作为客户端库,我正在使用如下所述的主题:

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 线程消费者?

最佳答案

我认为你可以使用supervisor来运行你的node js代码。在主管配置中,您可以指定需要运行的实例数量(在您的情况下为 100 个)。

配置路径为:/etc/supervisor/conf.d/

关于node.js - Kafka Nodejs单线程模型-添加消费者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32148380/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com