Skip to Sidebar Skip to Content
اقرأ-تك اقرأ-تك
ضيفنا الكريم

  • تسجيل الدخول
  • الرئيسية
  • المقالات
  • خطط الاشتراك
  • - اصدارتنا
  • ورقة وقلم
  • مدونات فطين
  • شنطة مبرمج
  • النشرة الأسبوعية
  • كنوز
  • - تعرف علينا
  • من نحن
  • الشراكات
  • كتاب المحتوى
  • اكتب معنا
  • تواصل معنا
  • - بنود الخدمة
  • سياسة الخصوصية
  • الشروط والأحكام
الوسوم
  • Backend
  • Distributed Systems
  • System Design
  • Databases
  • LinkedIn
  • X
  • Facebook
  • Telegram
  • GitHub
جميع الحقوق محفوظة لمنصة اقرأ-تِك 2024©

Characteristics of Distributed Systems 003

  • Mahmoud Youssef by Mahmoud Youssef
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • •
  • ١٨ أكتوبر، ٢٠٢٣
  • •
  • 1 min read
  • Share on X
  • Share on Facebook
  • Share on LinkedIn
  • Share on Pinterest
  • Email
Characteristics of Distributed Systems 003
Characteristics of Distributed Systems
  • Distributed Systems
  • System Design

تتميز النظم الموزعة بعدة خصائص سنتناول البعض منها والتي تعد من أهم الخصائص التي يجب الالمام بها في هذا المقال.

التسامح مع الخطأ في النظم الموزعة

 من الأمور المسلم بها في عالم النظم الموزعة وفي عالم البرمجيات هو امكانية حدوث خطأ في أي وقت ممكن ولأي سبب من الأسباب، وأشكال حدوث الخطأ كثيرة ويمكنها أن تأخذ العديد من الصور والأمثلة. 

ولكي تكون قادرًا على بناء نظام قوي لابد لك كمهندس برمجيات معرفة وادراك كيفية تحقيق مبدأ التسامح مع الخطأ أو ما يعرف بالـ Fault Tolerance وهذا لإنه هو السبيل لبناء نظام قوي قادر على الصمود أمام مختلف أنواع المشاكل والأخطاء المتوقع والغير متوقع حدوثها. 

كما ذكرنا سابقًا يمكن للأخطاء أن تتخذ العديد من الأشكال .. فعلى سبيل المثال من الممكن ولأي سبب من الأسباب أثناء تصفحك على الموبايل أو اللابتوب الشخصي الخاص بك .. حدوث أي عطل أو فقدان الجهاز للطاقة لأي سبب من الأسباب .. وقد تكون المشكلة ليست متصلة بالـ Software ولكن من الوارد جدًا حدوث أية مشكلة خاصة بالـ Hardware كذلك. 

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

والآن تخيل ماذا لو حدث هذا العطل في نظام (اقرأ-تِك) الذي قمنا ببناءه سويًا وهو الآن يتكون من العديد من العقد التي تحتوي على الـ Backend Server والعديد من العقد التي تحتوي على قاعدة بيانات ويتم عمل مزامنة بينهم وبين بعضهم لكي تصبح البيانات متواجدة في جميع العقد بدوم مشاكل .. 

ماذا سيحدث إذا حدثت مشكلة في احدى العقد أو في أكثر من عقدة في نفس ذات الوقت ؟ وما المشاكل أو الأخطاء المتوقع والغير متوقع حدوثها لهذا النظام ؟ 

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

من أهم مميزات النظم الموزعة قابلية النظام وقدرته على اكمال المهام والعمل بشكل جيد في حالة حدوث أية أخطاء في أحد مكوناته. 

عرفنا ما الذي سيحدث للنظام إذا حدثت أية مشكلة في إحدى مكوناته أو أجزاءه .. ولكن ما هي المشاكل أو الأخطاء المتوقع والغير متوقع حدوثها لمثل هذا النظام ؟

أمثلة على بعض المشاكل والأخطاء

 إذا تعاملنا مع (اقرأ-تِك) كمثال كما ذكرناه سابقًا فمن المشاكل أو الأخطاء المتوقع حدوثها الآتي: 

  1.  من الممكن لاحد العقد التي تقوم باستقبال الـ Requests من المستخدمين أن تتلقى حمل زائد عن المتوقع وهو ما يعرف بالـ High Traffic أو High Traffic Spike لجزء من الوقت مما يجعلها غير قادرة على تحمل المزيد وحدوث عطل ما بها. وهذا لإنها ستصل إلى اقصى حدود مواردها من CPU / RAM ولن تستطيع التعامل مع أي Requests آخرى
  2. إذا حدثت مشكلة في إحدى عقد قواعد البيانات .. لن تستطيع عملية المزامنة أن تتم بشكل فعال وهذا سيؤدي إلى تأخر أو حدوث عدم تناسق في البيانات الموجودة في مختلف العقد الآخرى وبين العقدة التي حدث بها العطل ..
  3. من الممكن حدوث أي عطل غير متوقع في احد العقد على سبيل المثال الـ Hardware كالـ Hard Disk أو أية موارد موجودة ايضًا .. فمن الممكن حدوث تلف ما بها.
  4. من الممكن حدوث خطأ برمجي أثناء التطوير في الكود المسئول عن هذا التطبيق والذي من الممكن أن يؤدي إلى حدوث بعض الأخطاء والمشاكل ويقوم التطبيق باطلاق Exceptions.

 ويوجد العديد من المشاكل التي من الممكن حدثوها كحدوث حريق أو أية مشاكل كارثية قد تؤدي إلى دمار العقد من الأساس وهنالك الكثير من الأمثلة على ذلك. 

لماذا نحتاج إلى مبدأ التسامح مع الخطأ ؟

هذا المقال مخصص للأعضاء فقط

اشترك الآن وتصفح كافة المقالات المميزة واستمتع بمحتوى حصري وابق على اطلاع دائم بالتحديثات المستمرة.

اشترك الآن 🚀

هل لديك حساب؟ تسجيل الدخول

في هذا المقال
اشترك الآن واكمل قراءة المقال
قناة اقرأ-تِك على التليجرام قناة اقرأ-تِك على التليجرام

اشترك الآن بنشرة اقرأ‑تِك الأسبوعية

لا تدع أي شيء يفوتك. واحصل على أحدث المقالات المميزة مباشرة إلى بريدك الإلكتروني وبشكل مجاني!

مقالات ذات صلة

  • gRPC 1 min read

    gRPC

    Mahmoud Youssef Mahmoud Youssef • ٤ يونيو، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • API Gateway 1 min read

    API Gateway

    Mahmoud Youssef Mahmoud Youssef • ٢١ مايو، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • How YouTube Supports Billions of Users With MySQL 2 min read

    How YouTube Supports Billions of Users With MySQL

    Mahmoud Youssef Mahmoud Youssef • ١٩ أبريل، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • How Slack Handles Billions of Tasks in Milliseconds 3 min read

    How Slack Handles Billions of Tasks in Milliseconds

    Mahmoud Youssef Mahmoud Youssef • ١١ أبريل، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • How Keyed Watermarks Enhance Apache Flink’s Accuracy 2 min read

    How Keyed Watermarks Enhance Apache Flink’s Accuracy

    Tawfik Yasser Tawfik Yasser • ٥ أبريل، ٢٠٢٥
    Tawfik Yasser Tawfik Yasser
    Data Engineer
    • Website
  • How Netflix Migrates Critical Traffic at Scale With No Downtime 4 min read

    How Netflix Migrates Critical Traffic at Scale With No Downtime

    Mahmoud Youssef Mahmoud Youssef • ٥ أبريل، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Kafka 1 min read

    Kafka

    Alaa Elkzaz Alaa Elkzaz • ٣١ مارس، ٢٠٢٥
    Alaa Elkzaz Alaa Elkzaz
    Co-Founder & Software Engineer
    • Website
  • Introduction to Microservices 1 min read

    Introduction to Microservices

    Mohamed Ramadan Mohamed Ramadan • ٢٢ يناير، ٢٠٢٥
    Mohamed Ramadan Mohamed Ramadan
    Backend Developer
    • Website
  • How Canva Built Scalable and Reliable Content Usage Counting Service 2 min read

    How Canva Built Scalable and Reliable Content Usage Counting Service

    Mahmoud Youssef Mahmoud Youssef • ١٧ يناير، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Top 6 Caching Strategies 2 min read

    Top 6 Caching Strategies

    Mahmoud Youssef Mahmoud Youssef • ٣ يناير، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
اقرأ-تك اقرأ-تك
  • الرئيسية
  • المقالات
  • خطط الاشتراك
  • - اصدارتنا
  • ورقة وقلم
  • مدونات فطين
  • شنطة مبرمج
  • النشرة الأسبوعية
  • كنوز
  • - تعرف علينا
  • من نحن
  • الشراكات
  • كتاب المحتوى
  • اكتب معنا
  • تواصل معنا
  • - بنود الخدمة
  • سياسة الخصوصية
  • الشروط والأحكام
الوسوم
  • Backend
  • Distributed Systems
  • System Design
  • Databases
  • LinkedIn
  • X
  • Facebook
  • Telegram
  • GitHub
جميع الحقوق محفوظة لمنصة اقرأ-تِك 2024©