Dharmaraj R
Dharmaraj R

Reputation: 11

KafkaClient using Nodejs

Can u please explain the kafkaClient using Nodejs with using port 9092 not zookeeper port 2181.

var kafka = require('kafka-node'),
    Producer = kafka.Producer,
    KeyedMessage = kafka.KeyedMessage,
    client = new kafka.Client(),
    producer = new Producer(client),
    km = new KeyedMessage('key', 'message'),
    payloads = [
        { topic: 'topic1', messages: 'hi', partition: 0 },
        { topic: 'topic2', messages: ['hello', 'world', km] }
    ];
producer.on('ready', function () {
    producer.send(payloads, function (err, data) {
        console.log(data);
    });
});

producer.on('error', function (err) {})

Upvotes: 1

Views: 2175

Answers (2)

ontananza
ontananza

Reputation: 392

Using the new KafkaClient is basically how u use the old Client, but talking directly to kafka.

const kafka = require('kafka-node');
let kafkaHost = '172.30.33.181:9092';
const Consumer = kafka.Consumer;
const client = new kafka.KafkaClient({kafkaHost: kafkaHost});

const consumer = new Consumer(
    client,
    [
        { topic: 'myTopic' },
    ],
    {
        autoCommit: false,
        fromOffset: 'latest'
    }
);

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

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

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

Upvotes: 0

Hans Jespersen
Hans Jespersen

Reputation: 8335

Newer Kafka clients no longer need to talk directly to zookeeper. They only need to talk to Kafka.

Upvotes: 1

Related Questions