我正在测试一些基本的Kafka功能,我在Ubuntu Server 18.04 LTS虚拟机上运行着基础zookeeper/kafka
服务器。我使用kafka-node
模块。
此脚本应在等待新消息到达以便使用它。 但是,一旦启动它,它就会陷入无限循环。
我找不到它的来源
"use strict"
require('dotenv').config();
var kafka = require('kafka-node');
const client = new kafka.Client("localhost:2181");
var topics = [{
topic: 'stuff',
offset: 0
}];
var options = {
autoCommit: false
}
const HLConsumer = new kafka.HighLevelConsumer(client, topics, options);
HLConsumer.on('message', function(message) {
console.log(message);
});
HLConsumer.on('error', function(err) {
console.log('error', err);
});
HLConsumer.on('offsetOutOfRange', function(err) {
console.log('offsetOutOfRange:', err);
})
每个人都度过美好的一天,谢谢
编辑1:
我已根据要求将autoCommit
更新为true
,但仍然有问题。
这是问题的廉价图片,实际上它循环遍历每个偏移量,然后读取偏移量为0的10/15消息,然后在主题的每个偏移量上重新启动循环
答案 0 :(得分:0)
我以前遇到过这个问题,解决方法是更新kafka-node。
答案 1 :(得分:-2)
我发现是什么原因造成的: 我曾经这样宣称我的消费者
var kafka = require('kafka-node');
...
var consumer = new kafka.Consumer(client, topics, options);
但是要做到这一点的好方法是:
var kafkaConsumer = require('kafka-node').Consumer;
...
var consumer = new kafkaConsumer(client, topics, options);