البرمجة
RabbitMQ للرسائل والـ Queues
12 ديسمبر 202511 دقائق قراءة
تعلم RabbitMQ للتواصل بين الخدمات والمعالجة غير المتزامنة.
ما هو RabbitMQ؟
RabbitMQ message broker لإرسال الرسائل بين التطبيقات. يفصل المُرسل عن المستقبل ويضمن وصول الرسائل.
المفاهيم
Producer - يرسل الرسائل
Queue - يخزن الرسائل
Consumer - يستقبل ويعالج
Exchange - يوجه الرسائل للـ queues
الإرسال
const amqp = require('amqplib');
async function send(message) {
const connection = await amqp.connect('amqp://localhost');
const channel = await connection.createChannel();
await channel.assertQueue('tasks');
channel.sendToQueue('tasks', Buffer.from(JSON.stringify(message)));
await channel.close();
await connection.close();
}
الاستقبال
async function consume() {
const connection = await amqp.connect('amqp://localhost');
const channel = await connection.createChannel();
await channel.assertQueue('tasks');
channel.consume('tasks', (msg) => {
const task = JSON.parse(msg.content.toString());
processTask(task);
channel.ack(msg); // تأكيد المعالجة
});
}
حالات الاستخدام
- إرسال الإيميلات
- معالجة الصور
- التواصل بين Microservices
- توزيع المهام على Workers
الخلاصة
RabbitMQ ممتاز للعمليات الطويلة والتواصل بين الخدمات. يزيد الموثوقية والتوسع.
الوسوم
#RabbitMQ#Messaging#Queue#Backend#Microservices