Sobes.tech
Junior — Middle

Heeft u ervaring met het berichtenuitwisselingssysteem RabbitMQ?

sobes.tech AI

Antwoord van AI

Ja, ik heb ervaring met RabbitMQ. Het is een berichtenbroker die toepassingen in staat stelt om gegevens asynchroon uit te wisselen via wachtrijen. In Node.js wordt vaak de bibliotheek amqplib gebruikt om met RabbitMQ te werken.

Voorbeeld van een eenvoudige verzender en ontvanger van berichten:

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);
    }
  });
}

// Om te verzenden, roep sendMessage(), om te ontvangen - receiveMessage()