Генерация случайных имён животных в Apache Kafka (Node.js)

Этот пример демонстрирует расширение базового производителя сообщений в Apache Kafka, написанного на Node.js, для генерации и отправки случайных названий животных.

Создание производителя и генерация случайных данных

Начальный пример отправляет сообщение «hello kafka.js user» в тему «test». Мы расширим его функциональность, создадим тему «animals» и будем генерировать случайные имена животных с помощью пакета chance.

const topic = 'animals';

Для отправки сообщений с интервалом в одну секунду используется setInterval:

setInterval(produceMessage, 1000);

Асинхронная функция produceMessage обрабатывает возможные ошибки:

const produceMessage = async () => {
  try {
    await producer.send({
      topic,
      messages: [{ value }]
    });
    console.log(value); // Вывод сгенерированного имени животного в консоль
  } catch (error) {
    console.error(error);
  }
};

Использование пакета chance

Для генерации случайных имен животных установите пакет chance с помощью npm:

npm install chance

Импортируйте и инициализируйте пакет в коде:

const Chance = require('chance');
const chance = new Chance();

Генерируйте случайное имя животного с помощью метода animal():

let value = chance.animal();

Полный код функции produceMessage:

const produceMessage = async () => {
  try {
    const value = chance.animal();
    await producer.send({
      topic,
      messages: [{ value }]
    });
    console.log(value);
  } catch (error) {
    console.error(error);
  }
};

Управление темой «animals»

Создайте тему «animals» в Kafka (команда зависит от вашей конфигурации):

# Команда для создания темы animals (например, kafka-topics --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic animals)

Проверьте создание темы (команда зависит от вашей конфигурации):

# Команда для отображения списка тем (например, kafka-topics --list --bootstrap-server localhost:9092)

Запуск и проверка

Запустите консольный потребитель, указав тему «animals»:

# Команда для запуска консольного потребителя с темой animals (пример)

Затем запустите производителя:

node producer.js

Производитель будет отправлять случайные имена животных в тему «animals» каждую секунду. Проверьте получение сообщений потребителем.

Пример демонстрирует модификацию производителя сообщений для генерации и отправки случайных данных в Apache Kafka с использованием Node.js и пакета chance.

Что будем искать? Например,программа