ما المقصود بطابور الرسائل الخامدة؟
طابور الرسائل الخامدة (DLQ) هو نوع خاص من قوائم انتظار الرسائل التي تخزن مؤقتًا الرسائل التي لا يمكن لنظام البرامج معالجتها بسبب الأخطاء. قوائم انتظار الرسائل هي مكونات البرامج التي تدعم الاتصال غير المتزامن في النظام الموزَّع. وهي تتيح لك إرسال رسائل مهما كان حجمها بين خدمات البرامج، ولا تتطلب أن يكون مستلم الرسائل متاحًا دائمًا. يعمل طابور الرسائل الخامدة على وجه التحديد على تخزين الرسائل الخاطئة التي ليس لها وجهة أو التي لا يمكن أن يعالجها مستلم الرسائل المقصود.
لماذا تعتبر طوابير الرسائل الخامدة مهمة؟
توجد طوابير الرسائل الخامدة (DLQ) جنبًا إلى جنب مع قوائم انتظار الرسائل العادية. وهي تعمل كمخزن مؤقت للرسائل الخاطئة والتي لم يتم إرسالها بنجاح. تمنع طوابير الرسائل الخامدة قائمة انتظار المصدر من مواجهة تدفق زائد للرسائل غير المعالجة.
على سبيل المثال، لنفترض أن هناك برنامجًا لديه قائمة انتظار رسائل عادية وطابور الرسائل الخامدة. يستخدم البرنامج قائمة الانتظار العادية للاحتفاظ بالرسائل التي يخطط لإرسالها إلى وجهة ما. إذا لم يستجب المستلم للرسائل المرسلة أو لم يعالجها، ينقلها البرنامج إلى طابور الرسائل الخامدة.
هناك سببان محتملان لانتقال الرسائل إلى مسار طابور الرسائل الخامدة: محتوى الرسالة خاطئ والتغييرات في نظام المستلم.
محتوى الرسالة خاطئ
ستنتقل الرسالة المرسلة إلى طابور الرسائل الخامدة إذا كانت خاطئة. قد تؤدي الأجهزة والبرامج وظروف الشبكة إلى إتلاف البيانات المرسلة. على سبيل المثال، يؤدي تداخل الأجهزة إلى تغيير طفيف في بعض المعلومات أثناء الإرسال. قد يتسبب تلف البيانات غير المتوقع في رفض المستلم للرسالة أو تجاهلها.
التغييرات في نظام المستلم
قد تنتقل الرسالة أيضًا إلى طابور الرسائل الخامدة إذا طرأت تغييرات على برنامج المستلم ولم يكن المرسل على علم بها. على سبيل المثال، يمكنك محاولة تحديث معلومات العميل عن طريق إرسال رسالة إلى CUST_ID_005. ومع ذلك، قد لا يتمكن المستلم من معالجة الرسالة الواردة لأنه أزال العميل من قاعدة بيانات النظام.
ما هي فوائد طابور الرسائل الخامدة؟
بعد ذلك، نتحدث عن فوائد طوابير الرسائل الخامدة (DLQ).
انخفاض تكاليف الاتصال
تستمر قوائم انتظار الرسائل العادية أو القياسية في معالجة الرسائل حتى انتهاء فترة الاحتفاظ بها. وهذا يساعد في ضمان المعالجة المستمرة للرسائل ويقلل من احتمال حظر قائمة الانتظار الخاصة بك.
ومع ذلك، إذا كان نظامك يعالج آلاف الرسائل، فإن عددًا كبيرًا من رسائل الخطأ سيزيد من تكاليف الاتصالات العامة ويزيد العبء على نظام الاتصال. بدلاً من محاولة معالجة الرسائل التي لم يتم إرسالها بنجاح حتى انتهاء صلاحيتها، من الأفضل نقلها إلى طابور الرسائل الخامدة بعد بضع محاولات معالجة.
تحسين تحديد المشاكل وإصلاحها
إذا نقلت رسائل خاطئة إلى طابور الرسائل الخامدة، فإن هذا يتيح للمطورين التركيز على تحديد أسباب الأخطاء. ويمكنهم التحقق من سبب عدم تمكن المستلم من معالجة الرسائل، وتطبيق الإصلاحات، وإجراء محاولات جديدة لتسليم الرسائل.
على سبيل المثال، قد ترسل البرامج المصرفية الآلاف من طلبات بطاقات الائتمان يوميًا إلى نظامها الخلفي للموافقة عليها. من هناك، يتلقى النظام الخلفي التطبيقات ولكن لا يمكنه معالجتها جميعًا بسبب المعلومات غير المكتملة. بدلاً من القيام بمحاولات غير محدودة، ينقل البرنامج الرسائل إلى طابور الرسائل الخامدة حتى يحل فريق تكنولوجيا المعلومات المشكلة. يسمح هذا للنظام بمعالجة الرسائل المتبقية وتسليمها بدون مواجهة مشاكل في الأداء.
متى يجب استخدام طابور الرسائل الخامدة؟
يمكنك استخدام طابور الرسائل الخامدة (DLQ) إذا كان نظامك يعاني من المشاكل التالية:
قوائم انتظار غير مرتبة
يمكنك الاستفادة من طوابير الرسائل الخامدة عندما لا تعتمد تطبيقاتك على الطلب. في حين أنّ طوابير الرسائل الخامدة تساعدك في تحديد مشاكل عمليات إرسال الرسائل غير الصحيحة وإصلاحها، يجب أن تستمر في مراقبة قوائم الانتظار وإعادة إرسال الرسائل التي لم يتم إرسالها بنجاح.
قوائم انتظار FIFO
يعد ترتيب الرسائل أمرًا مهمًا في قوائم انتظار التي تستند إلى مبدأ "ما يدخل أولاً يخرج أولاً" (FIFO). يجب معالجة كل رسالة قبل تسليم الرسالة التالية. يمكنك استخدام طوابير الرسائل الخامدة مع قوائم انتظار FIFO، ولكن يجب أن يكون تطبيق طابور الرسائل الخامدة الخاص بك يستند إلى مبدأ FIFO أيضًا.
متى يجب عدم استخدام طابور الرسائل الخامدة؟
يجب ألا تستخدم طابور الرسائل الخامدة (DLQ) مع قوائم الانتظار غير المرتبة عندما تريد أن تتمكن من الاستمرار في إعادة محاولة إرسال رسالة إلى أجل غير مسمى. على سبيل المثال، لا تستخدم طابور الرسائل الخامدة إذا كان يجب على البرنامج الانتظار حتى تصبح العملية التابعة نشطة أو متاحة.
وبالمثل، يجب ألا تستخدم طابور الرسائل الخامدة مع قائمة انتظار تستند إلى مبدأ «ما يدخل أولاً يخرج أولاً» (FIFO) إذا كنت لا تريد تغيير الترتيب الدقيق للرسائل أو العمليات. على سبيل المثال، لا تستخدم طابور الرسائل الخامدة مع الإرشادات في قائمة قرارات التحرير (EDL) لمجموعة تحرير الفيديو. في هذه الحالة، من خلال تغيير ترتيب عمليات التحرير، يمكنك تغيير سياق عمليات التحرير اللاحقة.
كيف يعمل طابور الرسائل الخامدة؟
في الغالب، يعمل طابور الرسائل الخامدة (DLQ) مثل قائمة انتظار الرسائل العادية. فهو يخزّن الرسائل الخاطئة إلى أن تعالجها للتحقق من سبب الخطأ.
بعد ذلك، سنتناول سياسة إعادة التوجيه لطوابير الرسائل الخامدة وكيفية انتقال الرسائل داخل طوابير الرسائل الخامدة وخارجها.
إنشاء سياسة إعادة التوجيه
ينقل البرنامج الرسائل إلى طابور الرسائل الخامدة عن طريق الرجوع إلى سياسة إعادة التوجيه. تتكون سياسة إعادة التوجيه من قواعد تحدد متى يجب أن ينقل البرنامج الرسائل إلى طابور الرسائل الخامدة. ومن خلال تحديد الحد الأقصى لعدد مرات إعادة المحاولة بشكل أساسي، تنظم سياسة إعادة التوجيه طريقة التفاعل بين قائمة انتظار المصدر وطابور الرسائل الخامدة.
على سبيل المثال، إذا ضبط المطور الحد الأقصى لعدد مرات إعادة المحاولة على واحد، ينقل النظام جميع عمليات التسليم غير الناجحة إلى طابور الرسائل الخامدة بعد محاولة واحدة. قد تنتج بعض عمليات التسليم غير الناجحة عن الحمل الزائد المؤقت على الشبكة أو مشاكل في البرامج. يؤدي هذا إلى إرسال العديد من الرسائل التي لم يتم تسليمها إلى طابور الرسائل الخامدة. لتحقيق التوازن المناسب، يحسّن المطورون الحد الأقصى لعدد مرات إعادة المحاولة لضمان أنّ البرنامج سيعيد المحاولة مرات كافية قبل نقل الرسائل إلى طابور الرسائل الخامدة.
نقل الرسائل إلى طابور الرسائل الخامدة
يمكن أن تفشل محاولات التسليم بين المرسل والمستلم لأسباب عديدة، ومنها:
- عدم تلقي المستلم للرسالة لأنها غير موجودة.
- وجود أخطاء في الرسالة.
- تجاوز الرسالة حدود طول قائمة الانتظار أو الرسالة. على سبيل المثال، لا يمكن لبعض المستلمين معالجة الرسائل التي تتجاوز حجمًا معينًا.
- انتهت مدة صلاحية (TTL) الرسالة. مدة الصلاحية (TTL) هي قيمة تشير إلى مدة صلاحية حزمة بيانات معينة على الشبكة.
نقل الرسائل من طابور الرسائل الخامدة
عندما تنتقل الرسائل إلى طابور الرسائل الخامدة، يفحص المطورون الرسائل الخاطئة لتحديد أسباب الخطأ. قد تحتوي الرسائل في طابور الرسائل الخامدة على رؤى قيّمة تساعد في منع تكرار المشاكل المماثلة في المستقبل. بعد أن يحلّل المطوّرون المشاكل ويعالجوها، ينقل النظام الرسائل من طابور الرسائل الخامدة إلى قائمة انتظار المصدر. يسمح هذا للمرسل بمتابعة معالجة الرسائل.
كيف تدعم AWS متطلبات طابور الرسائل الخامدة الخاصة بك؟
توفرخدمة قوائم الانتظار البسيطة في Amazon (Amazon SQS) نهجًا قابلاً للتطوير لتبادل الرسائل بين الأنظمة الموزَّعة على نطاق واسع. يستخدم المطورون Amazon SQS لإنشاء تطبيقات ويب موثوقة مع قوائم انتظار قياسية مُدارة بالكامل وقوائم انتظار تستند إلى مبدأ "ما يدخل أولاً يخرج أولاً" (FIFO).
فيما يلي مزايا أخرى لخدمة Amazon SQS:
- تسمح Amazon SQS للأنظمة بإنشاء عدد غير محدود من قوائم انتظار الرسائل
- يمكن للمطورين نقل الرسائل على دفعات لتحقيق كفاءة التكلفة
- تدعم Amazon SQS قفل الرسائل، ما يمنع أجهزة كمبيوتر متعددة من معالجة الرسالة نفسها في الوقت نفسه
ابدأ استخدام Amazon Web Services (AWS) عن طريق إنشاء حساب AWS اليوم.