Отправка и получение сообщений с Apache Kafka помощью Node.js

Шаг 1. Установите библиотеку Kafka для Node.js

Откройте файл terminal в каталоге вашего Node.js проекта.

Выполните следующую команду, чтобы установить kafkajs библиотеку, Node.js библиотеку для Apache Kafka: npm install kafkajs.

Шаг 2. Отправка сообщений с Producer помощью Node.js

Импортируйте kafkajs библиотеку и определите Kafka Broker конфигурацию:

const { Kafka } = require('kafkajs');  
  
const kafka = new Kafka({  
  clientId: 'your-client-id',  
  brokers: ['broker1:port1', 'broker2:port2'], // Replace with actual addresses and ports  
});  

Создайте producer для отправки сообщений и отправьте сообщение на 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();  

Шаг 3: Получение сообщений с Consumer помощью Node.js

Импортируйте kafkajs библиотеку и определите конфигурацию Kafka Broker(если это еще не сделано):

const { Kafka } = require('kafkajs');  
  
const kafka = new Kafka({  
  clientId: 'your-client-id',  
  brokers: ['broker1:port1', 'broker2:port2'], // Replace with actual addresses and ports  
});  

Создайте consumer для получения сообщений от определенного topic:

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();  

Примечание. Замените такие значения 'your-client-id', как 'broker1:port1', 'your-topic', и 'your-group-id' фактической информацией о проекте.

Обязательно обратитесь к официальной документации Apache Kafka и kafkajs библиотеке для получения дополнительной информации о параметрах конфигурации и функциях.