How To Read Data From Topic Using Kafka-node?
Solution 1:
I am doing a similar project where i have a Kafka producer on its own server and am using Kafka-Node as a consumer for my application. I am fairly new to Kafka-Node, and don't have much experience with it, but i can try to share some of the insights i have found.
I believe your problem is literally that your topic doesn't exist.
1. How can i make sure Kafka connection is established?
If your connection wasn't established, i don't think it would move on to say the topic doesn't exist. When i type in a topic that doesn't exist and i type a random ip for my Kafka producer, nothing errors out. But when i point to the correct ip, and an still have incorrect topic, i get the same error you see.
2. This code is working for my application
var kafka = require('kafka-node');
varConsumer = kafka.Consumer,
    // The client specifies the ip of the Kafka producer and uses// the zookeeper port 2181
    client = new kafka.Client("<ip to producer>:2181"),
    // The consumer object specifies the client and topic(s) it subscribes to
    consumer = newConsumer(
        client, [ { topic: 'myTopic', partition: 0 } ], { autoCommit: false });
consumer.on('message', function (message) {
    // grab the main content from the Kafka messagevar data = JSON.parse(message.value);
    console.log(data);
});
Hopefully this doesn't find you too late.
Solution 2:
If you need this for debugging/development purposes then just add the following imports (the following code is in ES6 format) and it should console.log out a message when the connection is established or if there were any failure messages:
this.kafkaLogging = require('kafka-node/logging');
this.kafkaLogging.setLoggerProvider(this.getLoggerProvider);
...
getLoggerProvider() {
    return {
        debug: console.log.bind(console),
        info : console.log.bind(console),
        warn : console.log.bind(console),
        error: console.log.bind(console)
    };
}
Post a Comment for "How To Read Data From Topic Using Kafka-node?"