تخيلوا ان عندنا مطعم وشغال فيه اكتر من طباخ بيعملوا اكلات كتيرة ومتنوعة في نفس الوقت, وكل واحد شغال على الطبق اللي بيجهزه, فعشان الطباخين دول يبقى فيه بينهم تناسق وترتيب على حسب الاوردرات لازم يكون فيه نظام بيحققلهم ده فهم بيعملوا ايه ؟
بيحطوا الاوردرات كلها ورا بعض في شكل طابور، وكل طباخ بيلاقي اوردر متاح بياخد الاوردر اللي عليه الدور.
هو ده ببساطة الـ Message Queue
Message Queue
الـ Message Queue هو عبارة عن وسيلة تواصل بين الـ Services وبعضها البعض فيقدروا يتبادلوا المعلومات بشكل Asynchronous وعشان كده النوع ده من التواصل بنسميه Asynchronous Communication.
طب يعني ايه Async ؟
فالـ Message Queue بيكون عبارة عن وسيط بين طرفين وبيضمنلك ان الرسالة هيتم استلامها من طرف واستقبالها من الطرف الآخر.
المكونات الأساسية لأي Message Queue
أول جزء هو الـ Producer :
- وده دوره انه يـ Create ويبعت الـ Message اللي عاوزة تتبعت للـ Message Queue
تاني جزء هو الـ Message :
- ودي الحاجة اللي الـ Producer بيبعتها للـ Message Queue عشان الـ Consumer يعملها Processing وممكن يكون ليها اكتر من شكل زي Data او Event حصل أو Task وكلهم عبارة عن Message في الأول والآخر ..
تالت جزء وهو الـ Message Queue :
- وده المكان اللي بتتخزن فيه الـ Message لحد ما يتم استلامها وعمل Processing عليها
رابع جزء هو الـ Consumer :
- وده دوره انه يستقبل الـ Message اللي اتبعتت ويعملها Processing بالشكل المطلوب