خدمة قوائم انتظار الرسائل

خدمة إدارة قوائم الانتظار هي برنامج وسيط موجه نحو الرسائل (MOM) يتم نشره في بيئة حوسبة سحابية باستخدام نموذج البرمجيات كخدمة . يصل المشتركون في الخدمة إلى قوائم الانتظار أو المواضيع لتبادل البيانات باستخدام أنماط الاتصال المباشر أو النشر والاشتراك .

من المهم التمييز بين الخدمات القائمة على الأحداث والخدمات القائمة على الرسائل (أو ما يُعرف بالخدمات القائمة على قوائم الانتظار): فالخدمات القائمة على الأحداث (مثل AWS SNS ) منفصلة عن مستخدميها، بينما الخدمات القائمة على قوائم الانتظار/الرسائل (مثل AWS SQS ) مرتبطة بمستخدميها. [ 1 ]

يمكن أن تكون قوائم انتظار الرسائل وسيلة جيدة للتعامل مع أحمال العمل المفاجئة، لكن سعتها محدودة. ووفقًا لغريغور هوب، تتطلب قوائم انتظار الرسائل آليات مناسبة (تُعرف أيضًا بضوابط التدفق) لتجنب امتلاء القائمة بما يتجاوز سعتها المُدارة، وللحفاظ على استقرار النظام. [ 2 ]

ضمانات الطلب في قوائم انتظار الرسائل

تُعدّ جلسات Amazon SQS FIFO وAzure Service Bus أنظمة مراسلة قائمة على قوائم الانتظار، توفر ضمانات ترتيب الرسائل ضمن مجموعة الرسائل أو محاولة الجلسة، ولكنها لا تضمن بالضرورة تسليم الرسائل بالترتيب الصحيح في حالات إعادة المحاولة أو الفشل. في SQS FIFO، تُعالج الرسائل في نفس مجموعة الرسائل بالترتيب، مع الاحتفاظ بالرسائل اللاحقة حتى تتم معالجة الرسالة السابقة بنجاح أو نقلها إلى قائمة انتظار الرسائل غير القابلة للتسليم (DLQ). بمجرد وضع رسالة في قائمة انتظار الرسائل غير القابلة للتسليم، لا تتم إعادة محاولة معالجتها، مما يُحدث فجوة في التسلسل. ومع ذلك، تستمر الرسائل المتبقية في التسليم بالترتيب الصحيح. [ 3 ] [ 4 ] [ 5 ]

تعمل جلسات Azure Service Bus بشكل مشابه من خلال الحفاظ على ترتيب الرسائل داخل الجلسة، شريطة أن يقوم مستهلك واحد بمعالجة الرسائل بالتسلسل. يختلف التنفيذ عن SQS FIFO ولكنه يتبع نفس مبدأ الترتيب الأساسي. [ 6 ] [ 7 ]

على النقيض من ذلك، يُعدّ أباتشي كافكا نظام مراسلة موزّعًا قائمًا على السجلات، يضمن ترتيب الرسائل داخل كل قسم على حدة، وليس عبر الموضوع بأكمله. وخلافًا للأنظمة القائمة على قوائم الانتظار، يحتفظ كافكا بالرسائل في سجل دائم يُضاف إليه فقط، مما يسمح لعدة مستهلكين بالقراءة من مواقع مختلفة. يستخدم كافكا إدارة يدوية للمواقع، مما يمنح المستهلكين التحكم في إعادة المحاولات ومعالجة الأعطال. إذا فشل مستهلك في معالجة رسالة، فبإمكانه تأخير تثبيت الموقع، مما يمنع أي تقدم إضافي في ذلك القسم بينما تبقى الأقسام الأخرى دون تغيير. يُمكّن هذا التصميم القائم على الأقسام من عزل الأعطال والمعالجة المتوازية، مع الحفاظ على ترتيب الرسائل داخل الأقسام، وذلك بحسب طريقة معالجة المستهلك. [ 8 ]

البائعون

أباتشي كافكا
[ 9 ] Apache Kafka هو نظام موزع يتكون من خوادم تقوم بتخزين وإعادة توجيه الرسائل بين تطبيقات المنتج والعميل والمستهلك.
IBM MQ
[ 10 ] تقدم IBM MQ خدمة مُدارة يمكن استخدامها على IBM Cloud و Amazon Web Services.
خدمة ناقل خدمة مايكروسوفت أزور
[ 11 ] يوفر ناقل الخدمة قوائم انتظار ومواضيع واشتراكات وقواعد/إجراءات لدعم سيناريوهات النشر والاشتراك، والفصل الزمني، وموازنة الأحمال. يعتمد ناقل خدمة Azure على بروتوكول AMQP، مما يسمح لأي حزمة عملاء AMQP 1.0 حالية بالتفاعل مع ناقل الخدمة مباشرةً أو عبر عملاء .Net وJava وNode وPython الحاليين. تتيح المستويات القياسية والمميزة الدفع حسب الاستخدام أو موارد معزولة على نطاق واسع.
خدمة أوراكل للمراسلة السحابية
[ ١٢ ] توفر هذه الخدمة حلاً للمراسلة للتطبيقات التي تتطلب اتصالاً غير متزامن، وهي متأثرة بمواصفات واجهة برمجة تطبيقات خدمة رسائل جافا (JMS). يمكن لأي منصة تطبيقات تدعم بروتوكول HTTP استخدام خدمة Oracle Messaging Cloud Service عبر واجهة REST. بالنسبة لتطبيقات جافا، توفر خدمة Oracle Messaging Cloud Service مكتبة جافا تُنفذ وتُوسع واجهة JMS 1.1. تُنفذ مكتبة جافا واجهة برمجة تطبيقات JMS من خلال العمل كعميل لواجهة برمجة تطبيقات REST.
خدمة أمازون البسيطة للطوابير
[ 13 ] يدعم الرسائل بشكل أصلي حتى 256 كيلوبايت، أو حتى 2 جيجابايت عبر نقل البيانات باستخدام S3. يتميز بقابلية توسع عالية، ومتانة، ومرونة. يوفر آلية FIFO غير مُقيدة و"تسليم مرة واحدة على الأقل" لتوفير نطاق واسع للغاية. يدعم واجهة برمجة تطبيقات REST وعميلخدمة رسائل Java. زمن استجابة منخفض. يستخدمخدمات أمازون السحابية.
IronMQ
[ ١٤ ] يدعم الرسائل حتى ٦٤ كيلوبايت؛ ويضمن ترتيبها؛ ويضمن تسليمها مرة واحدة فقط؛ ولا يوجد أي تأخير في استرجاع الرسائل. يدعم واجهة برمجة تطبيقات REST وبروتوكول Beanstalkd مفتوح المصدر. يعمل على منصات سحابية متعددة، بما في ذلك AWS وRackspace. يجب على المستخدم إدارة التوسع.
RabbitMQ
[ 15 ] RabbitMQ وسيط موثوق ومتطور للرسائل والبث المباشر، سهل النشر في بيئات الحوسبة السحابية، وفي مراكز البيانات المحلية، وعلى جهازك المحلي. يدعم بروتوكولاتAMQPوSTOMPوMQTT.
StormMQ
[ 16 ] تدعم المنصة المفتوحة رسائل تصل إلى 50 ميجابايت. وتستخدمبروتوكول AMQPلتجنباحتكار الموردينوتوفير حيادية لغوية. ويتيح خيار تحديد الموقع للعملاء التحقق من موقع بياناتهم في جميع الأوقات، بما يتوافق مع مبادئ حماية البيانات.
AnypointMQ
[ 17 ] خدمة مراسلة سحابية متعددة المستأجرين للمؤسسات، تُنفذ سيناريوهات مراسلة غير متزامنة متقدمة بين التطبيقات. تتكامل Anypoint MQ بشكل كامل مع منصة Anypoint، مما يوفر تحكمًا في الوصول قائمًا على الأدوار، وإدارة تطبيقات العميل، وموصلات.

انظر أيضاً

مراجع

  1. تشاندراسيكاران، بريماناند؛ كريشنان، كارتيك؛ فورد، نيل؛ بايرز، براندون؛ بويز، ألارد (2022). تصميم قائم على المجال باستخدام جافا - دليل عملي . دار نشر باكت. ISBN 978-1-80056-476-3.
  2. هوب، غريغور. أنماط تكامل المؤسسات: تصميم وبناء ونشر حلول المراسلة . أديسون-ويسلي بروفيشنال. ISBN 978-0-321-20068-6.
  3. "منطق تسليم قائمة الانتظار FIFO في خدمة Amazon SQS - خدمة Amazon Simple Queue Service" . docs.aws.amazon.com . تم الاطلاع عليه بتاريخ 22-03-2025 .
  4. "استخدام قوائم انتظار الرسائل غير القابلة للتسليم في خدمة Amazon SQS - خدمة Amazon Simple Queue Service" . docs.aws.amazon.com . تم الاطلاع عليه بتاريخ 22-03-2025 .
  5. "قوائم انتظار Amazon SQS FIFO - خدمة قوائم الانتظار البسيطة من Amazon" . docs.aws.amazon.com . تم الاطلاع عليه بتاريخ 22-03-2025 .
  6. spelluru (2025-03-21). "جلسات رسائل Azure Service Bus - Azure Service Bus" . learn.microsoft.com . تم الاطلاع عليه بتاريخ 2025-03-22 .
  7. spelluru (2025-02-07). "قوائم انتظار الرسائل غير القابلة للتسليم في ناقل الخدمة - ناقل خدمة Azure" . learn.microsoft.com . تم الاطلاع عليه بتاريخ 22-03-2025 .
  8. نارخيدي، نيها؛ شابيرا، غوين؛ بالينو، تود (2017). كافكا: الدليل الشامل: معالجة البيانات في الوقت الحقيقي ومعالجة التدفقات على نطاق واسع . سيباستوبول، كاليفورنيا: أورايلي ميديا. ISBN 978-1-4919-3616-0. OCLC 933521388 . 
  9. "مقدمة إلى كافكا" . أباتشي كافكا . 2025-02-26.
  10. "IBM MQ على السحابة" . IBM . 2018-11-16.
  11. "Microsoft Azure Service Bus" . 2017-03-23.
  12. "استخدام خدمة Oracle Messaging Cloud" . مركز مساعدة Oracle . تم الاطلاع عليه بتاريخ 20 أبريل 2018 .
  13. "خدمة قائمة الانتظار البسيطة من أمازون (إصدار واجهة برمجة التطبيقات 2012-11-05)" . 2012-11-05.
  14. "IronMQ" . iron.io. مؤرشف من الأصل بتاريخ 2016-08-05 . تم الاطلاع عليه بتاريخ 2017-01-11 . يربط IronMQ الأنظمة الموزعة معًا من خلال توفير طريقة موثوقة للتواصل بين الخدمات والمكونات. يتميز IronMQ بتوافره العالي، واستمراريته المصممة، مع أفضل جهد لتسليم البيانات لمرة واحدة، مما يجعله الحل الأمثل والأكثر قوة في بيئات الحوسبة السحابية لهندسة التطبيقات الحديثة.
  15. "RabbitMQ" . تم الاسترجاع في 26-02-2025 .
  16. "StormMQ" . 2010-05-03.{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  17. "AnypointMQ" . 2016-08-30.