Reputation: 11
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
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
Reputation: 8335
Newer Kafka clients no longer need to talk directly to zookeeper. They only need to talk to Kafka.
Upvotes: 1