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

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