سؤال

هذا شيء كنت أتساءل عنه دائمًا. أفهم أن التحجيم الأفقي يدور حول إضافة المزيد من الآلات إلى المزيج. لكن يمكنني التفكير في نهجين لهذا. لنفترض أن لدي 20 خادمًا أريد استخدامه (بالإضافة إلى قاعدة بيانات). أنا استطيع:

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

يبدو أن الرقم 1 أكثر شيوعًا وأسهل في الفهم ، ولكن يبدو أن الرقم 2 يعتبر "أفضل الممارسات" (لأنها في الغالب بنية N-tier). كيف يختار المرء بين هذين النموذجين؟ وما هي إيجابيات وسلبيات كل نهج؟

هل كانت مفيدة؟

المحلول

يعتمد ذلك على المهمة ، وما سيكون اختناقاتك.

تقريبًا بدون استثناء ، ستحتاج إلى نوعين على الأقل من الخادم: 1) التطبيق و 2) قاعدة البيانات. إذا قمت بتوزيع خوادم التطبيق ، فلا تزال بحاجة إلى مزامنة البيانات بينها ، مما يجعل أحد تلك الخوادم (أو خادم منفصل) خادم قاعدة البيانات الخاص بك.

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

الخيار رقم 2 أفضل ، بالنسبة لأغلبية المواقع ، خاصة إذا كنت لا تعرف مسبقًا أي الخوادم ستصبح اختناقات. إذا لم تسمح لكل نوع من الخادم بالتقسيم ، فسوف تكون عالقة في إعادة كتابة رمز المصدر أثناء طفرات النمو غير المتوقعة. بعد ذلك ، سيتعين عليك اتخاذ قرارات صعبة مثل "ما هي الميزات التي يجب أن نتعطش حتى لا يزال بإمكان الموقع العمل أثناء العمل على التحجيم؟"

بصراحة ، رغم ذلك ، لن أقضي الكثير من الوقت في القلق بشأن قابلية التوسع. بمجرد أن تصل إلى نقطة تصبح فيها أحمال الخادم عالية جدًا ، ستتمكن من تحمل بعض إعادة كتابة المصدر. إما من خلال مصادر التمويل المكتشفة حديثًا ، أو من خلال الأرباح المباشرة خارج الموقع. مثال على ذلك: لا يزال Twitter رائعًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top