Junior — Middle
Ai experiență cu sistemul de schimb de mesaje RabbitMQ?
sobes.tech AI
Răspuns de la AI
Da, am experiență cu RabbitMQ. Este un broker de mesaje care permite aplicațiilor să schimbe date asincron prin cozi. În Node.js, se folosește adesea biblioteca amqplib pentru a lucra cu RabbitMQ.
Exemplu de un simplu expeditor și receptor de mesaje:
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);
}
});
}
// Pentru a trimite, apelați sendMessage(), pentru a primi - receiveMessage()