Gửi & Nhận Tin nhắn với Apache Kafka trong Dự án Node.js

Bước 1: Cài đặt Thư viện Kafka cho Node.js

Mở terminal trong thư mục dự án Node.js của bạn.

Chạy lệnh sau để cài đặt thư viện kafkajs, một thư viện Node.js cho Apache Kafka: npm install kafkajs.

Bước 2: Gửi Tin nhắn với Producer trong Node.js

Import thư viện kafkajs và định nghĩa cấu hình Kafka Broker:

const { Kafka } = require('kafkajs');

const kafka = new Kafka({
  clientId: 'your-client-id',
  brokers: ['broker1:port1', 'broker2:port2'], // Thay thế bằng địa chỉ và cổng thực tế
});

Tạo producer để gửi tin nhắn và gửi một tin nhắn đến một chủ đề (topic):

const producer = kafka.producer();

const sendMessage = async () => {
  await producer.connect();
  await producer.send({
    topic: 'your-topic',
    messages: [{ value: 'Hello Kafka!' }],
  });
  await producer.disconnect();
};

sendMessage();

Bước 3: Nhận Tin nhắn với Consumer trong Node.js

Import thư viện kafkajs và định nghĩa cấu hình Kafka Broker (nếu chưa):

const { Kafka } = require('kafkajs');

const kafka = new Kafka({
  clientId: 'your-client-id',
  brokers: ['broker1:port1', 'broker2:port2'], // Thay thế bằng địa chỉ và cổng thực tế
});

Tạo consumer để nhận tin nhắn từ chủ đề (topic) cụ thể:

const consumer = kafka.consumer({ groupId: 'your-group-id' });

const consumeMessages = async () => {
  await consumer.connect();
  await consumer.subscribe({ topic: 'your-topic', fromBeginning: true });

  await consumer.run({
    eachMessage: async ({ topic, partition, message }) => {
      console.log(`Received message: ${message.value}`);
    },
  });
};

consumeMessages();

Lưu ý: Hãy thay thế các giá trị như 'your-client-id', 'broker1:port1', 'your-topic', và 'your-group-id' bằng thông tin thực tế của dự án của bạn.

Đảm bảo tham khảo tài liệu chính thức của Apache Kafka và thư viện kafkajs để hiểu rõ hơn về các tùy chọn cấu hình và chức năng.