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.