Skip to main content

Command Palette

Search for a command to run...

Node JS Kafka

Published
1 min read
A

Self taught developer working on Angular, Vue, Typescript, Node JS, MongoDB, Express JS, LoopBack API, Laravel, Laravel Lumen, mysql. write packages for angular/vue. Part time youtuber

Please go through my previous blog posts like setup Kafka in windows and how to write publisher/subscriber

setup Kafka in windows

write Kafka publisher/subscriber in node js

Get All the Topics in current Kafka listener

import kafkajs in your app.js file

const { Kafka } = require('kafkajs')

Now define kafka configuration like kafka listener/server. In my case it is 'YOURDESKTOP-TEST.mshome.net'

const kafka = new Kafka({
  brokers: ['YOURDESKTOP-TEST.mshome.net:9092']
});

create kafka admin client using kafka.admin() like this:

const admin = kafka.admin()

use listTopics() method using admin like this:

const getAllTopics = async () => {
        await admin.connect();
        return await admin.listTopics();
    };

getAllTopics() is a promise and we will have to resolve it.

return getAllTopics().then(allTopics => {
            console.log(allTopics);
        })

Get offsets of the topic

use fetchTopicOffsets() method using admin like this. We will have to pass topic name in this method

const fetchTopicOffsets = async (topicName) => {
        await admin.connect();
        return await admin.fetchTopicOffsets(topicName);
    };

fetchTopicOffsets () is a promise and we will have to resolve it:

return fetchTopicOffsets(topicName.toString()).then(topicOffset => {
            console.log(topicOffset);
        })
A
Ashish K5y ago

check this git repository for code reference github.com/devashishkumar/node-kafka

More from this blog

Angular, TypeScript, Vue, Node JS, Express JS, MongoDB, MongoDB Cloud, PHP, Laravel, Slim Framework, Mysql, JavaScript, PWA

24 posts

I'm a Full Stack Developer, Open Source Contributor, Blogger, npm packages developer, Youtuber. My hobbies are Contribution in open source projects, blogging, develop npm packages, part time youtuber