مع نموّ الأنظمة، يصبح ربط المكوّنات مباشرةً هشًّا. طوابير الرسائل تحلّ هذا، و Amazon SQS هو حلّ AWS المُدار لها. يبني هذا الدرس على معرفتك بخدمات مثل Lambda.
المشكلة: الاقتران المباشر هشّ
تخيّل خدمة «أ» تستدعي خدمة «ب» مباشرةً. ماذا لو كانت «ب» بطيئة أو معطّلة أو غارقة في الطلبات وقت الذروة؟ ستتأثّر «أ» فورًا، وقد تضيع الطلبات. الربط المباشر يجعل المكوّنات معتمدةً على توفّر بعضها لحظيًا.
ما هو طابور الرسائل؟
طابور الرسائل وسيط يجلس بين المكوّنات: يرسل المُنتِج (Producer) رسالةً إلى الطابور، ويسحبها المُستهلِك (Consumer) ويعالجها حين يستطيع. هكذا لا يتحادث الطرفان مباشرةً، بل عبر الطابور.
Amazon SQS هو خدمة طوابير رسائل مُدارة بالكامل: لا خوادم تديرها، وتوسّع تلقائيًا.
الفائدة: فكّ الاقتران (Decoupling)
- الصمود: إن تعطّل المُستهلِك مؤقّتًا، تبقى الرسائل آمنة في الطابور حتى يعود.
- امتصاص الذروات: يبتلع الطابور موجة الطلبات المفاجئة، ويعالجها المُستهلِك بوتيرته دون انهيار.
- الاستقلال: يتوسّع كل طرف ويُصان دون أن يوقف الآخر.
- المعالجة غير المتزامنة: يعود المُنتِج فورًا دون انتظار اكتمال المعالجة.
قياسي مقابل FIFO
يقدّم SQS نوعين من الطوابير:
- قياسي (Standard): إنتاجية عالية جدًا، مع ضمان توصيل «مرّة واحدة على الأقلّ» وترتيب تقريبيّ (قد تصل الرسائل بترتيب مختلف قليلًا).
- FIFO (الداخل أوّلًا يخرج أوّلًا): يحافظ على الترتيب الدقيق ويمنع التكرار، مقابل إنتاجية أقلّ. مناسب حين يكون الترتيب حرجًا.
متى تحتاج طابورًا؟
مفيد حين تريد فكّ ارتباط المكوّنات، أو معالجة مهامّ في الخلفية، أو امتصاص أحمال متغيّرة. نمط شائع: يضع تطبيقك مهمّةً في SQS، وتعالجها دالّة Lambda بشكل غير متزامن.
ℹ️ «طابور الرسائل» مفهوم عامّ في تصميم الأنظمة يتجاوز AWS؛ نتناوله هنا من زاوية خدمة SQS.
الخطوات التالية
بعد فكّ الاقتران، ستتعرّف على إطار أفضل الممارسات الشامل في إطار AWS Well-Architected. راجع الأساس في ما هي الحوسبة السحابية؟.