Junior — Middle
Vai jums ir pieredze ar RabbitMQ konfigurēšanu un ziņojumu pārraidi?
sobes.tech AI
Atbilde no AI
Jā, man ir pieredze ar ziņojumu iestatīšanu un pārraidīšanu, izmantojot RabbitMQ Node.js.
Lai strādātu ar RabbitMQ, parasti izmanto amqplib bibliotēku. Galvenie soļi ir:
- Savienojuma izveide ar RabbitMQ serveri.
- Kanāla izveide.
- Rindas deklarēšana.
- Ziņojumu sūtīšana rindā.
- Ziņojumu saņemšana no rindas.
Ziņojumu sūtīšanas un saņemšanas piemērs:
const amqp = require('amqplib');
async function sendMessage() {
const connection = await amqp.connect('amqp://localhost');
const channel = await connection.createChannel();
const queue = 'task_queue';
await channel.assertQueue(queue, { durable: true });
const msg = 'Hello RabbitMQ!';
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);
}
});
}
// Izsauc funkcijas pēc vajadzības
// sendMessage();
// receiveMessage();
Tādējādi RabbitMQ ļauj organizēt uzticamu ziņojumu apmaiņu starp pakalpojumiem ar apstiprinājumu un kļūdu izturību.