Sobes.tech
Назад к вопросам
Junior — Middle
82

Есть ли у вас опыт настройки и передачи сообщений с помощью RabbitMQ?

Ответ от нейросети

sobes.tech AI

Да, у меня есть опыт настройки и передачи сообщений с помощью RabbitMQ в Node.js.

Для работы с RabbitMQ обычно используют библиотеку amqplib. Основные шаги:

  1. Подключение к серверу RabbitMQ.
  2. Создание канала.
  3. Объявление очереди.
  4. Отправка сообщений в очередь.
  5. Получение сообщений из очереди.

Пример отправки и получения сообщений:

const amqp = require('amqplib');

async function sendMessage() {
  const connection = await amqp.connect('amqp://localhost');
  const channel = await connection.createChannel();
  const queue = 'task_queue';

  await channel.assertQueue(queue, { durable: true });
  const msg = 'Hello RabbitMQ!';

  channel.sendToQueue(queue, Buffer.from(msg), { persistent: true });
  console.log(" [x] Sent '%s'", msg);

  setTimeout(() => {
    connection.close();
    process.exit(0);
  }, 500);
}

async function receiveMessage() {
  const connection = await amqp.connect('amqp://localhost');
  const channel = await connection.createChannel();
  const queue = 'task_queue';

  await channel.assertQueue(queue, { durable: true });
  channel.prefetch(1);

  console.log(" [*] Waiting for messages in %s. To exit press CTRL+C", queue);

  channel.consume(queue, (msg) => {
    if (msg !== null) {
      console.log(" [x] Received %s", msg.content.toString());
      channel.ack(msg);
    }
  });
}

// Запуск функций по необходимости
// sendMessage();
// receiveMessage();

Таким образом, RabbitMQ позволяет организовать надежный обмен сообщениями между сервисами с поддержкой подтверждений и устойчивостью к сбоям.