UNPKG

rdkafka

Version:

Direct node wrappers over C++ librdkafka API

72 lines (67 loc) 1.92 kB
"use strict"; const kafka = require('./index'); const producer = new kafka.Producer({ 'metadata.broker.list': 'localhost:9092' }); const consumer1 = new kafka.KafkaConsumer({ 'metadata.broker.list': 'localhost:9092', 'group.id': 'my_group_id', 'fetch.wait.max.ms': '1', 'fetch.min.bytes': '1', 'queue.buffering.max.ms': '1' }); consumer1.subscribe(['test_dc.resource_change']); consumer1.on('error', (err) => { console.log('CONS1 ERR: ', err); }); consumer1.on('log', (err) => { console.log('CONS1 LOG: ', err); }); consumer1.on('stats', (err) => { console.log('CONS1 STATS: ', err); }); /*let startTime; let i = 0; function get1() { return consumer1.consume() .then((message) => { startTime = startTime || new Date(); if ((i++) % 10000 === 0) { console.log(i * 1000 / (new Date() - startTime)); } }) .then(get1); } for (let i = 0; i < 1000; i++) { get1(); }*/ const consumer2 = new kafka.KafkaConsumer({ 'metadata.broker.list': 'localhost:9092', 'group.id': 'my_group_id', 'fetch.wait.max.ms': '1', 'fetch.min.bytes': '1', 'queue.buffering.max.ms': '1', }); consumer2.subscribe(['example_topic']); consumer2.on('error', (err) => { console.log('CONS2 ERR: ', err); }); consumer2.on('log', (err) => { console.log('CONS2 LOG: ', err); }); function get2() { producer.produce('example_topic', 0, 'Test message', 'TEST KEY') .then((offset) => { console.log(`Produced a message with offset ${offset}`); return consumer2.consume() .then((message) => { console.log(`Got a message: \n` + ` topic: ${message.topicName}\n` + ` partition: ${message.partition}\n` + ` offset: ${message.offset}\n` + ` payload: ${message.payload.toString()}\n`); }) .then(get2); }); } get2();