Sobes.tech
Junior — Middle

Opowiedz o swoim doświadczeniu z brokerami wiadomości i ich wykorzystaniu w projektach

sobes.tech AI

Odpowiedź od AI

W projektach Node.js pracowałem z brokerami wiadomości, takimi jak RabbitMQ i Apache Kafka. Służą one do organizacji asynchronicznej wymiany wiadomości między komponentami systemu, co zwiększa skalowalność i odporność na awarie.

Na przykład w jednym projekcie RabbitMQ był używany do obsługi zadań w tle: serwer internetowy wysyłał wiadomości do kolejki, a osobny worker je przetwarzał. Pozwalało to odciążyć główny strumień i poprawić responsywność aplikacji.

Przykład wysyłania wiadomości do RabbitMQ w Node.js z użyciem biblioteki 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 = 'Process this task';

  await channel.assertQueue(queue, { durable: true });
  channel.sendToQueue(queue, Buffer.from(msg));

  console.log("[x] Sent '%s'", msg);
  setTimeout(() => {
    connection.close();
  }, 500);
}

sendMessage();

W ten sposób brokerzy wiadomości pomagają budować rozproszone i skalowalne systemy z efektywnym przetwarzaniem danych.