0Pricing
C# Academy · درس

مفاهيم المراسلة

افهموا الأوامر والأحداث وقوائم الانتظار

مفاهيم المراسلة درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 4 دروس في المجموع.

لماذا المراسلة؟

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

ما هو MassTransit؟

إن MassTransit إطار عمل لـ .NET يعمل فوق وسطاء رسائل مثل RabbitMQ أو Azure Service Bus. ويتولى التسلسل والتوجيه وإعادة المحاولة وغير ذلك، حتى تركزوا على الرسائل والمعالجات بدلًا من تفاصيل الوسيط.

dotnet add package MassTransit

الأوامر مقابل الأحداث

هناك نيتان مهمتان للرسائل. يخبر الأمر خدمة محددة بتنفيذ شيء ما ("ChargePayment"). أما الحدث فيعلن وقوع شيء ما ("OrderPlaced") لأي جهة تهتم به. وللأوامر معالج واحد، بينما يمكن أن يكون للأحداث عدة معالجات.

نمذجة أمر

الأمر نوع رسالة عادي، وتكون تسميته بصيغة الأمر. أرسلوه إلى مستهلك واحد.

public record ChargePayment(
    Guid OrderId,
    decimal Amount);

نمذجة حدث

تُسمّى الأحداث بصيغة الماضي، وتُنشر إلى جميع المشتركين المهتمين.

public record OrderPlaced(
    Guid OrderId,
    string CustomerEmail);

قوائم الانتظار

تحتفظ قائمة الانتظار بالرسائل حتى يعالجها مستهلك. وهي تعمل بنمط نقطة إلى نقطة؛ إذ تُسلّم كل رسالة إلى مستهلك واحد بالضبط، مما يتيح توزيع الحمل بين مثيلات المستهلكين، ويُعرف ذلك بالمستهلكين المتنافسين.

التبادلات والموضوعات

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

كيفية استخدام MassTransit لها

يطابق MassTransit أنواع رسائلكم مع التبادلات وقوائم الانتظار تلقائيًا. يستهدف Send قائمة انتظار، وهو أمر؛ بينما يستهدف Publish تبادلًا، بحيث تستقبل قائمة انتظار كل مستهلك مشترك نسخة من الرسالة، وهو حدث.

فصل الخدمات عمليًا

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

ضمانات التسليم

يوفّر الوسطاء عادةً تسليمًا مرة واحدة على الأقل؛ فقد تُسلّم الرسالة مرة أخرى بعد حدوث فشل. لذلك ينبغي أن يكون المستهلكون متوافقين مع التكرار، بحيث تكون معالجة الرسالة نفسها مرتين آمنة.

متى نستخدم المراسلة؟

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

اختبار سريع

اختبروا مفاهيم المراسلة.

مراجعة

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

الأسئلة الشائعة

هل درس «مفاهيم المراسلة» مجاني؟

نعم — نص درس «مفاهيم المراسلة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 4 دروس في المجموع.

ماذا ستتعلم في «مفاهيم المراسلة»؟

افهموا الأوامر والأحداث وقوائم الانتظار تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟

لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «مفاهيم المراسلة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟

نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مفاهيم المراسلة
  2. إنتاج الرسائل واستهلاكها
  3. Saga ومسارات العمل
  4. معالجة الأخطاء وإعادة المحاولة
← العودة إلى C# Academy