تم النشر 2026-01-19
حسنا، دعونا نذهب مع شيء من هذا القبيل.
لذا، فأنت تقوم ببناء شيء ما في .NET Core، ودمج الخدمات معًا، وربما تشعر بالرضا حيال ذلك. حتى يوم واحد، تصبح الخدمة هادئة. ليس حادث تحطم، فقط… بطيء. ثم أبطأ. ثم يبدأ كل شيء في النسخ الاحتياطي. تتراكم المكالمات، وتنطلق المهلات، وتضيء لوحة القيادة كعلامة تحذير لا يمكنك تجاهلها.

إنه مثل ترس واحد مهتز في آلة - كل شيء آخر ينتظر، ويجهد، وفي النهاية، تتوقف الحركة بأكملها.
هذا هو الشيء المتعلق بالخدمات الصغيرة. يتحدثون. كثيراً. وعندما يمرض أحد الأعضاء، يمكن أن ينتشر المرض. هل سبق أن توقفت خدمة الدفع لأن فحص المخزون قرر أخذ قيلولة؟ أو تسجيل الدخول الذي ينتظر إلى الأبد على بعض واجهات برمجة التطبيقات التابعة لجهات خارجية والتي تمر بيوم سيء؟
نعم. ليست ممتعة.
هنا تظهر فكرة "قاطع الدائرة الكهربائية". تصور قاطع الدائرة الكهربائية في منزلك. يسخن شيء ما، ويسحب الكثير من التيار - انقر فوق - ينطلق القاطع. يحفظ الأسلاك. يعطي الأشياء الوقت لتبرد.
في الكود، الأمر مشابه. يمكنك تغليف المكالمات إلى الخدمات الأخرى بمراقبة صغيرة. إذا وصل الفشل إلى حد معين، فإن الدائرة "تفتح". المزيد من المكالمات تفشل بسرعة، لا تنتظر. لا مزيد من المواضيع عالقة في طي النسيان. وبعد فترة من الوقت، يسمح بمكالمة اختبارية واحدة - حالة نصف مفتوحة - لمعرفة ما إذا كانت الخدمة عن بعد قد عادت أم لا. إذا كان يعمل، يتم إغلاق الدائرة. يستأنف التدفق.
بسيط؟ من الناحية المفاهيمية، نعم. ولكن جعل الأمر سلسًا في .NET Core... هو ما يهم الاهتمام بالتفاصيل.
لماذا يهمك؟ لنفترض أن خدمة الدفع الخاصة بك تستدعي خدمة الكشف عن الاحتيال. يبدأ اكتشاف الاحتيال في الاستجابة ببطء، ربما يكون هناك حمل زائد، أو ربما يكون هناك خلل في الشبكة. بدون وجود قاطع، تصطف طلبات الدفع في قائمة الانتظار، ويتم حظر الخيوط، ويتعطل خط أنابيب الدفع بالكامل. مع وجود قاطع، على سبيل المثال، بعد خمس حالات فشل في دقيقة واحدة، فإنه يتوقف عن الاتصال بالكشف عن الاحتيال مؤقتًا. ربما تقوم بتوجيه المدفوعات إلى شيك مبسط، أو تقوم فقط بتسجيل الدخول للمراجعة لاحقًا. ويظل النظام مستجيبًا، حتى لو تدهورت بعض الميزات.
أفضل من كشك كامل، أليس كذلك؟
الآن، كيف يمكنك جعل هذا يعمل بشكل جيد في .NET Core؟ ليس عليك بنائه من الصفر. هناك مكتبات وأنماط. لكن الحيلة تكمن في مزجها مع التدفق الخاص بك دون تحويل التعليمات البرمجية الخاصة بك إلى متاهة من منطق إعادة المحاولة والتحقق.
فكر في الأمر وكأنه يمنح كل مكالمة من خدمة إلى خدمة القليل من "الذكاء". قمت بتعيين العتبات: كم عدد حالات الفشل قبل الافتتاح؟ كم من الوقت يجب الانتظار قبل الاختبار مرة أخرى؟ ما الذي يجب فعله عندما يكون مفتوحًا — إرجاع قيمة مخزنة مؤقتًا، أو إرسال رسالة ودية، أو تشغيل سير عمل بديل؟
تحتاج أيضًا إلى تسجيل ما يحدث. ليس فقط "الدائرة مفتوحة"، ولكن لماذا ومتى وماذا تأثرت. لأنه عندما تسوء الأمور، فأنت تريد معرفة القصة، وليس مجرد رؤية التنبيهات الحمراء.
سألني أحدهم ذات مرة: "ألن يزيد هذا تعقيدًا؟" بالتأكيد، قليلا. لكن قارن ذلك بتعقيد تصحيح الأخطاء المتتالية عبر عشر خدمات في الساعة الثانية صباحًا. سأستخدم قاطع الدائرة في أي يوم.
سؤال آخر: هل هو للمكالمات الخارجية فقط؟ مُطْلَقاً. يمكن أن تستفيد الخدمات الداخلية ومكالمات قاعدة البيانات وحتى المكالمات إلى وحدات مختلفة داخل نفس الخدمة. أي نقطة تعتمد فيها على شيء قد يفشل أو يتباطأ بشكل غير متوقع.
من الناحية العملية، يبدو تنفيذ ذلك بمثابة إضافة شبكة أمان تحت فنان الأرجوحة. لا يزال الفنان يؤدي الفعل الرئيسي، ولكن إذا انزلقوا، فإن الشبكة تلتقطهم - بسرعة وبشكل نظيف - حتى يستمر العرض.
لقد أمضى Kpowe وقتًا في ضبط هذا النمط ليناسب بيئات .NET Core الحقيقية. إنها ليست مجرد ميزة التوصيل والتشغيل؛ إنه التوصيل والتفكير. كيف ينبغي أن تتفاعل مع المراقبة الخاصة بك؟ كيفية تكوين العتبات دون التخمين؟ كيف نجعل الإجراء الاحتياطي مفيدًا بالفعل، وليس مجرد فشل صامت؟
الهدف هو المرونة. ليس فقط "إنه يعمل"، ولكن "إنه يعمل حتى عندما تكون الأجزاء مكسورة".
لذا، في المرة القادمة التي تصمم فيها خدمة ما، تخيل كل مكالمة خارجية وكأنها رحلة استكشافية صغيرة. إرسال الكشافة. إذا لم يعود الكشاف في الوقت المناسب، فلا ترسل الجيش بأكمله. انتظر. حاول مرة أخرى لاحقًا. حافظ على تحرك بقية نظامك.
هذا ما يفعله قاطع الدائرة. إنه الكشاف الذي يعرف متى يتوقف عن طرق الباب الذي لن يفتح.
وفي عالم تتحدث فيه الأنظمة أكثر من أي وقت مضى، فإن هذا النوع من الحكمة ليس أمرًا رائعًا فحسب، بل هو ما يجعل كل شيء آخر يسير بسلاسة.
أنشئت في عام 2005،kpowerتم تخصيصها لمصنع محترف لوحدة الحركة المدمجة، ومقرها الرئيسي في دونغقوان، مقاطعة قوانغدونغ، الصين. الاستفادة من الابتكارات في تكنولوجيا القيادة المعيارية،kpowerيدمج المحركات عالية الأداء ومخفضات الدقة وأنظمة التحكم متعددة البروتوكولات لتوفير حلول نظام القيادة الذكية الفعالة والمخصصة.kpowerقدمت حلول أنظمة القيادة الاحترافية لأكثر من 500 عميل من المؤسسات على مستوى العالم مع منتجات تغطي مجالات مختلفة مثل أنظمة المنزل الذكي، والإلكترونيات الأوتوماتيكية، والروبوتات، والزراعة الدقيقة، والطائرات بدون طيار، والأتمتة الصناعية.
وقت التحديث: 19-01-2026