النواقل، والخطوط، والاتجاهات
الطلب كخطوة على الرسم البياني
كل مكون يلم بالطلب هو نقطة: متصفح، وضابط DNS، وحافة CDN، ووكيلاً عكسيًا، ونسخة الخادم الرئيسي، وقاعدة البيانات، ومخزن التخزين.
كل اتصال بين نقطةين هو خط موجه: تتدفق الطلبات إلى الأمام، وتتدفق الإجابات إلى الخلف. يمثل الخط الموجه إلى الأمام اتصال TCP مفتوحًا بالإضافة إلى البروتوكول الموجود فوقه.
طلب واحد هو مسار في هذا الرسم البياني. يبلغ العمل الذي يقوم به النظام للإجابة على الطلب هو مجموع العمل في كل نقطة، بالإضافة إلى تأخير كل خط.
لماذا يهم؟ بمجرد الرسم البياني، يظهر خصائص لا يرى في الكود:
- عدد القصبات: عدد الخطوط في المسار. كل قصبة تزيد من تأخير (الانتقال الدوري للشبكة + معالجة النقطة). عدد القصبات الأقل = الأسفل الأقل على التأخير.
- درجة الدخول: عدد الخطوط التي تُشير إلى داخل النقطة. درجة دخول عالية تعني أن النقطة تتلقى الطلبات من العديد من المصادر و必须 تنمو أو تستر نفسها.
- درجة الخروج: عدد الخطوط التي تُشير إلى خارج النقطة. درجة خروج عالية تعني أن النقطة تعتمد على العديد من الأطراف السفلية ولديها العديد من الطرق للفشل.
- نقطة مقطوعة: نقطة واحدة تُقسم فيها الشبكة عند إزالتها. وكيلاً عكسيًا بدون شريك هو نقطة مقطوعة؛ إزالتها تُقسم جميع الوصول إلى أصلها.
من حيث تركز المرور
التركيز = التركيز
درجة الدخول للنقطة = عدد الفتحات النافذة التي تشير إليها. في مخطط الطلب ، يكون درج الدخول = عدد المصادر العلوية التي ترسل الطلبات.
نمط التركيز: الكثير من العملاء -> واحد CDN; الكثير من أطراف CDN -> عدد قليل من بروكسي الأصل; الكثير من بروكسي -> أقل عدد من كائنات الوراثة; الكثير من الخلفيات -> قاعدة بيانات واحدة.
التركيز مهم لأن النقطة ذات درجة الدخول الأعلى ترى المزيد من الحمل المجمعة. قد ترى قاعدة البيانات في نهاية السلسلة استفسارات من كل طلب نشط في النظام بأكمله ، حتى إذا لم يكن لكل مستخدم الكثير.
التركيز = الاعتماد
درجة الخروج للنقطة = عدد الفتحات النافذة التي تخرج منها. درجة الخروج العالية تعني الاعتماد على العديد من الخدمات المتجهة.
يُدعى الخلفي الذي يدعو قاعدة بيانات ، وقنوات تخزنية ، وثلاثة APIs خارجية ، ومكب يعمل بنسبة 7. هي احتمالية النجاح تقريبًا هي حاصل ضرب كل احتمالية نجاح المتجهة (إذا كانت جميعها مطلوبة للحصول على رد ناجح).
0.999 ^ 7 ≈ 0.993: يُدعى الخلفي لديه 7 متجهة كلها بنسبة 99.9% موثوقية يمكن أن تحقق فقط ~99.3% موثوقية لنفسه ، حتى إذا لم يكن لديه أي أخطاء من نفسه.
تقليل درجة الخروج بواسطة: تخزين نتائج المتجهة ، جعل المتجهة غير ضرورية خيارًا اختياريًا (التكيف بفائدة التخفيف) ، تعددية ما يمكن تعددية.
عدم التناسب
التركيز يجمع الحمل ، والتركيز يضاعف الخطر. مخطط جيد يقلل من كليهما في أعلى النقاط التأثير.
قاعدة البيانات (أعلى درجة دخول): تخزين العرض بشكل جيد لخفض الحمل. كائنات الوراثة المقرأه للقراءة لتنسيق درجة الدخول عبر عدة عقد.
خدمة المنسق (أعلى درجة خروج): مفاتيح الدائرة لكل اعتماد ، التكيف بفائدة التخفيف ، الحواجز.
يُدعى العمود الفقري يشتروى التمكنية
الانحياز = إضافة عقدة ثانوية
بدون خادم إعادة التوجيه العكسي، يكون الجراف: العميل -> الخادم الأساسي. يجب على العميل المعرفة بالعنوان الخادم الأساسي. نقل الخادم الأساسي يتطلب تحديث العميل (via DNS أو تكوين). هذا هو الارتباط المشدود.
بوجود خادم إعادة التوجيه العكسي، يصبح الجراف: العميل -> خادم إعادة التوجيه العكسي -> الخادم الأساسي. يعرف العميل فقط عن خادم إعادة التوجيه العكسي. نقل الخادم الأساسي يتطلب تحديث تكوين upstream للخادم العكسي، وليس العميل.
العمليات الجرافية: إدراج عقدة على طول حافة موجودة. الحافة الجديدة العميل -> خادم إعادة التوجيه العكسي مستقرة؛ والحافة الجديدة خادم إعادة التوجيه العكسي -> الخادم الأساسي هو الآن مسؤول الفريق.
القراءة الجيومترية: الانحياز يضيف طبقة تفرق بين التغييرات العلوية والأسفل. يمكن تغيير حافطات كل طبقة بشكل مستقل.
تكاليف الانحياز
كل طبقة تضيف:
- ثواني واحدة من تأخير (الحافة من العميل إلى خادم إعادة التوجيه العكسي)
- مرشح إضافي للنقطة المقطوعة على المسار (خادم إعادة التوجيه العكسي نفسه)
- مكان إضافي حيث يمكن وقوع خطأ في التكوين
عادةً ما تتعادل الفوائد (التعديل والزيادة والتشفير وتوزيع الشحن) على التكاليف في أي نظام مهم. لكن هناك حد: كل طبقة من الانحياز تقوم بإضافة هوب إضافي ومرشح إضافي للنقطة المقطوعة.
القاعدة الشعبية: يمكن حل أي مشكلة عن طريق إضافة طبقة من الانحياز (إلا مشكلة وجود طبقات من الانحياز المفرطة).
قراءة معمارية كجراف
التركيب
يمكنك الآن قراءة معمارية النظام كجراف: احسب الهوبات، وحدد النقاط المقطوعة، وقارن تراكيز fan-in، وحسب سقوف توافر من fan-out، وقيّم تكاليف الانحياز.
تطبيقات جميع الأربعة.
خدمة جديدة لديها هذا التصميم: العملاء -> CDN -> معالج العكس (2 نُسخ) -> طبقة الخادم الرئيسي (8 نُسخ) -> { قاعدة البيانات الرئيسية، مجموعة الكاش (3 عقد) ، واجهة خارجية }.
ملاحظات المرافق
ملاحظات المرافق
تجعل هذه الدروس الهندسية درس الوصلات والمصادر الرئيسية درسًا تحليلًا لرسوم متحركة موجهة.
درس المرافق التالي في هذا المنهج، geometry_of_stateless_horizontal_scaling، يستخلص من درس التوسع الرئيسي المعادلة للمكافئ وفرمية قانون لITLE وخط الاستقامة الجغرافية 80% من مستوى التطبيق.
جيد جدًا.