@yogaraj-saravanan/kafka-utils
Version:
Reusable Kafka producer and consumer utilities using kafkajs.
27 lines (26 loc) • 856 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.KafkaConsumer = void 0;
const kafkajs_1 = require("kafkajs");
class KafkaConsumer {
constructor(clientId, brokers, groupId) {
this.clientId = clientId;
this.brokers = brokers;
this.groupId = groupId;
const kafka = new kafkajs_1.Kafka({ clientId, brokers });
this.consumer = kafka.consumer({ groupId });
}
async connect(topic, onMessage) {
await this.consumer.connect();
await this.consumer.subscribe({ topic, fromBeginning: false });
await this.consumer.run({
eachMessage: async (payload) => {
await onMessage(payload);
},
});
}
async disconnect() {
await this.consumer.disconnect();
}
}
exports.KafkaConsumer = KafkaConsumer;