Skip to content

Commit 94821e5

Browse files
committed
feat: producer consumer
1 parent f29910c commit 94821e5

File tree

4 files changed

+120
-0
lines changed

4 files changed

+120
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// @ts-check
2+
import Kafka from 'node-rdkafka';
3+
4+
const consumer = new Kafka.KafkaConsumer(
5+
{
6+
'group.id': 'kafka',
7+
'metadata.broker.list': 'localhost:9092',
8+
},
9+
{},
10+
);
11+
12+
consumer.connect();
13+
14+
consumer
15+
.on('ready', () => {
16+
console.log('consumer ready...');
17+
consumer.subscribe(['test']);
18+
consumer.consume();
19+
})
20+
.on('data', (data) => {
21+
console.log(`received message : ${data.value} ⭐️`);
22+
});

standalone-apis/node-kafka-producer-consumer/package-lock.json

Lines changed: 56 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"name": "kafka-producer-consumer",
3+
"version": "1.0.0",
4+
"description": "## Create Kafka Topic",
5+
"main": "index.js",
6+
"type": "module",
7+
"scripts": {
8+
"start:producer": "node ./producer/index.js",
9+
"start:consumer": "node ./consumer/index.js"
10+
},
11+
"keywords": [],
12+
"author": "",
13+
"license": "ISC",
14+
"dependencies": {
15+
"avsc": "^5.7.7",
16+
"node-rdkafka": "^3.2.1"
17+
}
18+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// @ts-check
2+
import Kafka from 'node-rdkafka';
3+
4+
const stream = Kafka.Producer.createWriteStream(
5+
{
6+
'metadata.broker.list': 'localhost:9092',
7+
},
8+
{},
9+
{ topic: 'test' },
10+
);
11+
12+
/** Queue message */
13+
function queueMessage() {
14+
const success = stream.write(Buffer.from(`hi from producer`));
15+
if (success) {
16+
console.log('message wrote successfully to stream. ✅');
17+
} else {
18+
console.log('something went wrong..');
19+
}
20+
}
21+
22+
setInterval(() => {
23+
queueMessage();
24+
}, 3000);

0 commit comments

Comments
 (0)