ما المقصود برسائل النشر/الاشتراك؟

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

كيف تعمل رسائل النشر/الاشتراك؟

يحتوي نظام النشر/الاشتراك على أربعة مكونات رئيسة.

الرسائل

الرسالة هي بيانات الاتصال المرسلة من المرسِل إلى المستلم. يمكن أن تكون أنواع بيانات الرسالة أي شيء بدايةً من السلاسل إلى الكائنات المعقدة التي تمثل النص أو الفيديو أو بيانات المستشعر أو الصوت أو أي محتوى رقمي آخر.

الموضوعات

كل رسالة لها موضوع مرتبط بها. ويعمل الموضوع كقناة وسيطة بين المرسلين والمستلمين. وهو يحافظ على قائمة المستلمين المهتمين بالرسائل حول هذا الموضوع.

المشتركون

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

الناشرون

الناشر هو المكون الذي يرسل الرسائل. وينشئ الناشر رسائل حول موضوع ما ويرسلها مرة واحدة فقط إلى جميع المشتركين في هذا الموضوع. يُعد هذا التفاعل بين الناشر والمشتركين علاقة واحد إلى متعدد. لا يحتاج الناشر إلى معرفة مَن يستخدم المعلومات التي يبثها، ولا يحتاج المشتركون إلى معرفة مصدر الرسالة.

ما ميزات نظام رسائل النشر/الاشتراك؟

التطبيقات التي جرى تطويرها باستخدام نمط النشر/الاشتراك لها تطبيق ومنطق اتصال منفصلان. تفصل البنية التحتية للرسائل تسليم الرسائل بين الناشرين والمشتركين وعمليات البث إلى مشتركين مختلفين بشكل غير متزامن.

يحتوي نظام اتصال النشر/الاشتراك على الميزات الرئيسة الآتية.

التسليم القائم على الدفع

تدفع رسائل النشر/الاشتراك إشعارات الأحداث غير المتزامنة فورًا عند نشر الرسائل في موضوع الرسالة. ويجري إخطار المشتركين عند توفر رسالة ما.

بروتوكولات التسليم المتعددة

تتصل الموضوعات بأنواع متعددة من نقاط النهاية، مثل قوائم انتظار الرسائل والوظائف بلا خادم وخوادم HTTP وعناوين البريد الإلكتروني.

القراءة حول وضع الرسائل في قائمة انتظار باستخدام AWS »

النشر

يحدث هذا السيناريو عندما تُرسَل رسالة إلى موضوع ما ثم تُنسخ وتُدفع إلى نقاط نهاية متعددة. يوفر النشر إشعارات أحداث غير متزامنة، وهي بدورها تتيح المعالجة المتوازية.

التصفية

تمكِّن ميزة التصفية المشترِك من إنشاء سياسة تصفية للرسائل. ومن ثمَّ، لن يتلقى المشترِك سوى الإشعارات التي يهتم بها، بدلاً من تلقي كل رسالة تُنشر على الموضوع.

تعدُّد الإرسال

في بعض الحالات، يمكن أن يكون الناشرون مشترِكين أيضًا. يمكنك أن تعدِّد إرسال تدفقات الرسائل وتنشئ أنظمة ترتبط ببعضها بطريقة متسقة داخليًا.

ما مزايا رسائل النشر/الاشتراك؟

يتيح نموذج النشر/الاشتراك (pub/sub) الهيكلة المدفوعة بالأحداث، وهو أمر مطلوب في العديد من التطبيقات الحديثة. يمكنك استخدام الأحداث لتشغيل خدمات منفصلة والتوصيل بينها. والحدث هو تغيُّر في الحالة، أو تحديث، مثل وضع عنصر في عربة تسوق.

توفر رسائل النشر/الاشتراك مزايا مهمة للمطوّرين الذين ينشئون تطبيقات تعتمد على أحداث في الوقت الفعلي. نوضح بعض المزايا أدناه.

إلغاء الاستبيانات

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

الاستهداف الديناميكي

يجعل نمط النشر/الاشتراك اكتشاف الخدمات أسهل وأكثر واقعية وأقل عرضة للخطأ. وبدلاً من الاحتفاظ بقائمة من الأقران بحيث يمكن للتطبيق إرسال الرسائل إليها، سينشر الناشر ببساطة الرسائل المرتبطة بموضوع ما. بعد ذلك، سيجعل أي طرف مهتم نقطة نهايته مشتركة في الموضوع ويبدأ في تلقي هذه الرسائل. يمكن للمشتركين المتعددين إجراء تغيير أو ترقية أو إخفاء، ويجري ضبط النظام ديناميكيًا.

الفصل وتوسيع النطاق بشكل مستقل

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

تبسيط الاتصالات

التعليمة البرمجية للاتصالات والتكامل من أصعب التعليمات البرمجية في كتابتها. ويقلل نموذج النشر/الاشتراك هذا التعقيد من خلال إزالة جميع الاتصالات من نقطة إلى نقطة باستخدام اتصال واحد بموضوع الرسالة. يدير الموضوع الاشتراكات لتحديد الرسائل التي يجب تسليمها وتحديد نقاط النهاية التي يجري التسليم لها. ويؤدي انخفاض عدد عمليات الاستدعاء إلى الاقتران بشكل أكثر حرية، بالإضافة إلى سهولة صيانة التعليمة البرمجية وتمديدها.

المتانة

غالبًا ما توفر خدمات رسائل النشر/الاشتراك متانة عالية للغاية، وتسليم مرة على الأقل، من خلال تخزين نُسخ من الرسالة نفسها على خوادم متعددة.

الأمان

تصادق موضوعات الرسائل على التطبيقات التي تحاول نشر المحتوى، وتتيح لك استخدام نقاط النهاية المشفرة لتأمين الرسائل في أثناء الانتقال عبر الشبكة.

ما حالات استخدام رسائل النشر/الاشتراك؟

نوضح حالات الاستخدام الشائعة لنظام رسائل النشر/الاشتراك أدناه.

إجراء معالجة متوازية غير متزامنة

يمكن أن تؤدي الأحداث المنشورة في موضوع رسالة ما إلى أداء العديد من العاملين المهام الضرورية غير المرتبطة ببعضها في آنٍ واحد.

إرسال تنبيهات التطبيق والنظام

قدِّم إشعارات التحديثات المهمة والأحداث غير المتزامنة على الفور لمكونات التطبيق المتأثرة والمستخدمين لديك.

إدارة مهام سير العمل غير المتزامنة

رحِّل الأحداث بين التطبيقات أو انقل البيانات بين مخازن البيانات أو نشِّط ذاكرات التخزين المؤقت الموزّعة أو حدِّث السجلات في أنظمة الأعمال.

الموازنة بين أعباء العمل

جمِّع المهام للمعالجة المجمعة، أو قسِّم المهمة الأكبر إلى العديد من المهام الأصغر واستخدم قائمة انتظار الرسائل لتقسيم العمل بين عدة عاملين.

التسجيل في أنظمة متعددة

سجِّل الأحداث لتحليلها لاحقًا، أو احتفظ بسجلات العمليات والأمان، أو أرشِفها لتلبية متطلبات النسخ الاحتياطي أو الامتثال.

استخدام النشر للنسخ المتماثل

انسخ البيانات بين بيئتي الإنتاج والتطوير، أو طورها واختبرها باستخدام البيانات المباشرة.

تنسيق تطبيقات بلا خادم

انشر إشعارات الأحداث غير المتزامنة للوظائف الموزعة وقوائم انتظار الرسائل لتنسيق مكونات تطبيقك الذي بلا خادم.

تدفق بيانات إنترنت الأشياء

يُعد نمط النشر/الاشتراك طريقة فعّالة للغاية لتفاعل أجهزة إنترنت الأشياء (IoT). يمكن للأجهزة دفق البيانات بسهولة إلى الأنظمة الخلفية أو بعضها البعض.

ما الفرق بين قوائم انتظار الرسائل ورسائل النشر/الاشتراك؟

تُعد قائمة انتظار الرسائل شكلاً آخر من أشكال الاتصال غير المتزامن المستخدم في البُنى التي بلا خادم وبُنى الخدمات المصغرة. تُخزَّن الرسائل في قائمة الانتظار حتى تُعالَج وتُحذف. وتتطلب قوائم انتظار الرسائل أن يعرف المرسِل مع مَن يتبادل الرسائل. قد يتسبب طلب الرسائل أيضًا في حدوث اختناقات في النظام.

في المقابل، يتيح نمط النشر/الاشتراك المزيد من المرونة. يمكن أن يتلقى العديد من المشتركين المهتمين الرسائل في آنٍ واحد وبشكل غير متزامن. ولا يحتاج الناشرون إلى معرفة مَن المشتركون. وتصير معالجة الرسائل أكثر قابلية للتوسع وأكثر موثوقية، وهي توفر أداءً أفضل.

القراءة حول التقنيات التي بلا خادم على AWS »

كيف يمكن أن تدعم AWS متطلبات رسائل النشر/الاشتراك الخاصة بك؟

Amazon Web Services ‏(AWS) لديها خدمتان يمكنك استخدامهما لتطبيقات النشر/الاشتراك المختلفة.

واجهات برمجة تطبيقات النشر/الاشتراك

AWS AppSync هي خدمة مُدارة بالكامل لإنشاء GraphQL بلا خادم وواجهات برمجة تطبيقات النشر/الاشتراك تبسِّط تطوير التطبيقات. يمكنك إنشاء نقطة نهاية واحدة للاستعلام عن البيانات أو تحديثها أو نشرها بأمان.

تمنحك واجهات برمجة تطبيقات النشر/الاشتراك التي أُنشئت باستخدام AWS AppSync القدرة على نشر تحديثات البيانات في الوقت الفعلي لعملاء واجهات برمجة التطبيقات المشتركين من خلال اتصالات WebSocket التي بلا خادم. يمكنك إنشاء تجارب جذابة في الوقت الفعلي لمجموعة متنوعة من حالات الاستخدام. على سبيل المثال، يمكنك تقديم أحدث نتائج الألعاب، أو البيانات المالية، أو مشاركات الجمهور، أو التصويتات، أو وظائف تحديد المواقع مثل الخرائط وتسويق الإشعارات القائمة على الدفع.

نسرد فيما يلي بعض الأمور التي يمكنك القيام بها باستخدام AWS AppSync:

  • الوصول إلى البيانات من واحد أو أكثر من المصادر أو الخدمات المصغرة بطلب شبكة واحد
  • التفاعل مع البيانات وتحديثها، حتى في وضع عدم الاتصال، مع مزامنة البيانات المنشأة في وضع عدم الاتصال وتعيين الإصدارات وحل التعارضات
  • عدم الدفع سوى مقابل الطلبات المرسَلة إلى واجهة برمجة التطبيقات لديك وأي رسائل في الوقت الفعلي يجري تسليمها إلى العملاء المتصلين

رسائل النشر/الاشتراك

تسهِّل Amazon Simple Notification Service (SNS) عليك إنشاء تطبيق باستخدام نموذج رسائل النشر/الاشتراك (pub/sub). يمكنك إرسال رسائل من تطبيقاتك إلى العملاء أو التطبيقات الأخرى بطريقة قابلة للتوسع وفعَّالة من حيث التكلفة.

توفر خدمة Amazon SNS عدة ميزات:

  • خدمة إرسال رسائل ذات معدل نقل مرتفع وقائمة على الدفع مع إمكانية الإرسال من عدة أطراف إلى عدة أطراف فيما بين الأنظمة الموزعة والخدمات المصغرة والتطبيقات بلا خوادم المدفوعة بالأحداث
  • تشفير الرسائل وخصوصية حركة المرور
  • نشر الإمكانيات عبر فئات AWS، مثل التحليلات والحوسبة والحاويات وقواعد البيانات وإنترنت الأشياء (IoT) وتعلّم الآلة (ML) والأمان والتخزين

ابدأ اليوم استخدام رسائل النشر/الاشتراك على AWS من خلال إنشاء حساب AWS مجاني اليوم.

الخطوات التالية على AWS

التحقق من الموارد الإضافية المتعلقة بالمنتج
اكتشاف عروض إنترنت الأشياء المجانية 
تسجيل الاشتراك للحصول على حساب مجاني

تمتع بالوصول الفوري إلى الطبقة المجانية من AWS.

تسجيل الاشتراك 
بدء الإنشاء في وحدة التحكم

بدء الإنشاء في وحدة إدارة تحكم AWS.

تسجيل الدخول