Kafka Transaction بالعربي With Mohamed Ragab & Ahmed Elemam - كافكا Tech Podcast بالعربي

About this video

### الملخص النهائي: تمحور النقاش حول كيفية استخدام **Apache Kafka** لمعالجة التحديات المرتبطة بتنفيذ العمليات في الأنظمة الموزعة (Distributed Systems)، مع التركيز على ضمان الدقة والموثوقية في التعامل مع الرسائل بين المنتجين (Producers) والمستهلكين (Consumers). فيما يلي النقاط الرئيسية التي تم تناولها: --- #### 1. **آلية عمل Kafka في إدارة الترانزاكشن:** - **تدفق الترانزاكشن**: - يقوم المنتج (Producer) ببدء الترانزاكشن، تسجيل العمليات (Logging)، وكتابة الرسائل إلى المواضيع (Topics). - يتم وضع علامات (Markers) مثل "Commit" أو "Abort" لتحديد حالة الترانزاكشن. - المستهلكون (Consumers) يمكنهم قراءة الرسائل المُلتزمة فقط، مما يضمن اتساق البيانات. - **التعامل مع الفشل**: - إذا فشل المنتج أثناء تنفيذ الترانزاكشن، يتم إلغاء العملية بالكامل لتجنب الكتابة الجزئية. - يتم منع المنتجين الزومبي (Zombie Producers) من التداخل باستخدام آليات مثل تتبع الأجيال الزمنية (Epoch Tracking). --- #### 2. **تحديات الترتيب والتوافق:** - قد يؤدي التداخل بين الترانزاكشنات المتزامنة أو الكتابة غير التفاعلية (Non-Transactional Writes) إلى مشاكل في ترتيب الرسائل. - على سبيل المثال، إذا كتب منتج رسالة معلقة بينما كتب آخر رسالة ملتزمة، قد يؤدي ذلك إلى قراءة المستهلك للرسائل بترتيب غير صحيح. - **حلول Kafka**: - تقديم مفهوم "Last Stable Offset" (LSO) لضمان قراءة المستهلك للبيانات الملتزمة فقط. - التنسيق بين المنتجين لتجنب الصراعات عند الكتابة في نفس الموضوع. --- #### 3. **إدارة التكرار والدقة:** - **مشكلة التكرار (Duplication)**: - قد يحدث تكرار للرسائل إذا لم يتم التأكد من استلام الرسالة بشكل صحيح، مما يؤدي إلى تنفيذ العمليات أكثر من مرة. - الحلول تشمل استخدام **Transaction ID** والمُنتجين المُعادلين (Idempotent Producers) لمنع التكرار. - **أهمية الدقة (Exactly Once Semantics)**: - Kafka يقدم حلولاً تقنية مثل إدارة الـ"أوفست" (Offset) واستخدام واجهة برمجة التطبيقات الخاصة بالترانزاكشن (Transaction API) لضمان تنفيذ العمليات الذرية (Atomic Operations). --- #### 4. **سلوك المستهلكين:** - المستهلكون قد يواجهون تأخيرات إذا كانوا بانتظار اكتمال الترانزاكشن أو ظهور العلامات (Markers). - في حالات الإجهاض (Abort)، لا يتم قراءة الرسائل غير الملتزمة، مما يضمن عدم معالجة بيانات غير صالحة. --- #### 5. **الأداء والمعادلات:** - استخدام الترانزاكشنات يضيف عبءًا على النظام، مما قد يؤدي إلى تباطؤ الأداء. - لتحقيق التوازن، يجب تحسين حجم وتردد الترانزاكشنات لتجنب التأثير السلبي على الكفاءة. --- #### 6. **الممارسات الفضلى:** - تجنب خلط التدفقات التفاعلية وغير التفاعلية. - استخدام المنتجين المُعادلين لمنع التكرار. - معالجة العمليات الحرجة خارج Kafka لتقليل التعقيد. - تنفيذ مراقبة قوية باستخدام أدوات مثل Prometheus للكشف عن الترانزاكشنات المتوقفة أو المشاكل الشبكية. --- #### 7. **التحديات والقيود:** - رغم أن Kafka يقدم ميزات قوية لإدارة الترانزاكشنات، إلا أن هذه الميزات تتطلب تنفيذًا دقيقًا ومراقبة مستمرة. - بعض المشكلات مثل الترانزاكشنات المتوقفة أو مواضيع الضغط (Compacted Topics) نادرة لكنها قد تكون حرجة، خاصة في ظروف الشبكة السيئة. --- ### **الخلاصة النهائية:** Kafka يوفر حلولاً


Course: Microservices بالعربي

مرحبًا بكم في دورة تدريبية شاملة ومميزة حول **أنماط الاتصال بين السيرفيسز (Microservices Communication Patterns)**. هذه الدورة مقدمة لكم من قبل أحمد الإمام، خبير تقني يتمتع بخبرة تمتد لأكثر من 8 سنوات في مجال تطوير البرمجيات، وهو حاليًا يعمل لدى شركة **Join** في ألمانيا. في هذه الدورة، سنتناول موضوعًا أساسيًا يُعتبر أحد الركائز الأساسية لفهم واستخدام **المايكرو سيرفيسز** بكفاءة: **الاتصال بين الخدمات**. إذا كنت قد بدأت رحلتك في عالم المايكرو سيرفيسز أو حتى لديك خلفية عنه، فمن المحتمل أنك واجهت تحديات في فهم كيفية تواصل هذه الخدمات مع بعضها البعض. سنناقش بالتفصيل الفرق بين **الاتصال المتزامن (Synchronous Communication)** و**غير المتزامن (Asynchronous Communication)**، وكيف يمكن اختيار الأنماط المناسبة بناءً على متطلبات المشروع. كما سنستعرض الأمثلة العملية والمشكلات الشائعة التي قد تواجهك أثناء تنفيذ هذه الأنماط وكيفية حلها. سواء كنت مطورًا مبتدئًا أو محترفًا، فإن هذه الدورة ستمنحك الأدوات والمعرفة اللازمة لتحسين تصميم التطبيقات الخاصة بك باستخدام أنماط اتصال فعّالة وحديثة. نهدف إلى تقديم محتوى غني ومفيد يساعدك على تحقيق أفضل النتائج في عملك اليومي. --- ### ## ملخص الدورة: تتناول هذه الدورة موضوع **أنماط الاتصال بين السيرفيسز (Microservices Communication Patterns)** بشكل عميق ومهني. يقدمها أحمد الإمام، الذي يمتلك خبرة طويلة في مجال تطوير البرمجيات، ويعمل حاليًا في شركة مرموقة بألمانيا. تركز الدورة على شرح كيفية تواصل خدمات المايكرو سيرفيسز مع بعضها البعض، مع التركيز على نوعين رئيسيين من الاتصال: **المتزامن وغير المتزامن**. يتم استعراض الفوائد والتحديات المرتبطة بكل نمط، بالإضافة إلى مناقشة المشكلات الشائعة التي قد تواجه المطورين وكيفية التغلب عليها. الدورة تستهدف جميع المستويات، من المبتدئين الذين يرغبون في فهم الأساسيات، إلى المحترفين الذين يسعون لتحسين مهاراتهم وتطبيق أفضل الممارسات في مشاريعهم. سيتم تقديم أمثلة عملية ونصائح قابلة للتنفيذ مباشرة. إنضم إلينا في هذه التجربة التعليمية الغنية لتكتسب رؤى جديدة ومهارات قوية تمكنك من تصميم وبناء تطبيقات أكثر كفاءة وفعالية باستخدام أنماط الاتصال الحديثة بين السيرفيسز. --- **نتمنى لكم تجربة تعليمية ممتعة ومفيدة!**

View Full Course