Junior — Middle
Da li imate iskustva sa sistemom za razmenu poruka RabbitMQ?
sobes.tech АИ
Одговор од АИ
Da, imam iskustva sa RabbitMQ. To je posrednik poruka koji omogućava aplikacijama da razmenjuju podatke asinhrono putem redova. U Node.js, često se koristi biblioteka amqplib za rad sa RabbitMQ.
Primer jednostavnog pošiljaoca i primaoca poruka:
const amqp = require('amqplib');
async function sendMessage() {
const connection = await amqp.connect('amqp://localhost');
const channel = await connection.createChannel();
const queue = 'task_queue';
const msg = 'Hello RabbitMQ!';
await channel.assertQueue(queue, { durable: true });
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);
}
});
}
// Za slanje pozovite sendMessage(), za primanje - receiveMessage()