卡夫卡节点:消费者缓慢

时间:2018-05-07 13:52:05

标签: node.js apache-kafka

我正在编写一个kafka-node使用者并与python中的使用者进行比较,它非常慢并且似乎没有收到所有消息。我试图调整所有可能的参数,但没有任何作用。

我使用此API:https://github.com/SOHU-Co/kafka-node#consumer

这是我的代码:

//--------------------Create a consumer---------------------------------------------------------------------------
var kafka = require('kafka-node');
var Consumer = kafka.Consumer;
var client = new kafka.Client('192.168.2.2:2181');
var consumer = new Consumer(client,
        [{ topic: 'clusterTest1', offset: 0}],
        {
            autoCommit: false,
            fromOffset: 'latest',
            outOfRangeOffset: 'latest',
            fetchMinBytes: 1,
            fetchMaxWaitMs: 50,
            fetchMaxBytes: 52428800

        }
    );

offset = new kafka.Offset(client);
    offset.fetch([
        { topic: 'clusterTest1', partition: 0, time: Date.now(), maxNum: 1 }
    ], function (err, data) {
        // data
        // { 't': { '0': [999] } }
    });


consumer.on('message', function (message) {
    console.log(message.value);
}); 

});

consumer.on('error', function (err) {
    console.log('Error:',err);
});

 consumer.on('offsetOutOfRange', function (topic) {
     console.log('---------Offset out of range--------');
  topic.maxNum = 2;
  offset.fetch([topic], function (err, offsets) {
    if (err) {
      return console.error(err);
    }
    var max= Math.max.apply(null, offsets[topic.topic][topic.partition]);
    consumer.setOffset(topic.topic, topic.partition, max);
  });
}); 

但是,这个python代码工作正常:

from kafka import KafkaConsumer

consumer = KafkaConsumer(bootstrap_servers=['192.168.2.2:9092','192.168.2.3:9092','192.168.2.4:9092','192.168.2.5:9092'])
print('Erfolgreich verbunden')
print(consumer.subscribe('clusterTest1'))
print(consumer.subscription())
#print(consumer.DEFAULT_CONFIG)
for msg in consumer:
    print(msg.value)

感谢您提前提供任何帮助。

1 个答案:

答案 0 :(得分:0)

解决。我不知道有多个分区。现在,我正在使用consumerGroup,我可以收到所有消息。

相关问题