Sobes.tech
Back to questions
Junior — Middle
90

Используешь ли ты RabbitMQ для обмена сообщениями в своих проектах?

Answer from AI

sobes.tech AI

Да, RabbitMQ часто используется в проектах на Node.js для организации обмена сообщениями между сервисами. Он позволяет реализовать асинхронную коммуникацию, очереди задач, балансировку нагрузки и надежную доставку сообщений.

Для работы с RabbitMQ в Node.js обычно используют библиотеку amqplib. Вот простой пример отправки и получения сообщения:

const amqp = require('amqplib');

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

  await channel.assertQueue(queue, { durable: false });
  channel.sendToQueue(queue, Buffer.from(msg));
  console.log("Sent:", msg);

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

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

  await channel.assertQueue(queue, { durable: false });
  channel.consume(queue, msg => {
    if (msg !== null) {
      console.log("Received:", msg.content.toString());
      channel.ack(msg);
    }
  });
}

sendMessage();
receiveMessage();

Таким образом, RabbitMQ помогает строить масштабируемые и отказоустойчивые системы.