نمط النشر والاشتراك يعني أن الرسالة المُرسلة من المُنتج ستُستقبل من قبل عدة مُستهلكين. نظرًا لأن الرسالة ستُستهلك وتُعالج من قبل عدة مُستهلكين، يُطلق عليه أيضًا نمط البثّ أو النمط الواحد-إلى-عدة.

ملاحظة: نظرًا لأن RabbitMQ ينفذ نمط النشر والاشتراك باستخدام نوع تبادل الـ fanout، يُطلق عليه أيضًا نمط fanout.

رسم تخطيط الهندسة المعمارية

fanout pattern

الشرح:

  • P يُمثل المُنتج، C1 و C2 يُمثلان المُستهلكين، اللون الأحمر يُمثل الطوابير، و X يُمثل التبادل.
  • يتولى التبادل reponsibility توجيه الرسائل إلى جميع الطوابير المُقيّدة بالتبادل.
  • يمكن تعريف عدة طوابير، كل منها مقيّدة بنفس التبادل.
  • يمكن لكل طابور أن يحتوي على مستهلك واحد أو أكثر.

نصيحة: في نفس الطابور، يمكن أن تُعالَج الرسالة من قبل مستهلك واحد فقط. السبب في كيفية تحقيق نمط البثّ يكمن أساسًا من خلال عدة طوابير للرسائل.

حالات الاستخدام

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