Назад к вопросам
Junior — Middle
82
Есть ли у вас опыт настройки и передачи сообщений с помощью RabbitMQ?
Ответ от нейросети
sobes.tech AI
Да, у меня есть опыт настройки и передачи сообщений с помощью RabbitMQ в Node.js.
Для работы с RabbitMQ обычно используют библиотеку amqplib. Основные шаги:
- Подключение к серверу RabbitMQ.
- Создание канала.
- Объявление очереди.
- Отправка сообщений в очередь.
- Получение сообщений из очереди.
Пример отправки и получения сообщений:
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 позволяет организовать надежный обмен сообщениями между сервисами с поддержкой подтверждений и устойчивостью к сбоям.