it-swarm.asia

ما المشكلات المحتملة التي أحتاج إلى معرفتها في بيئة متعددة الخوادم / المجمعة؟

لقد كنت أعمل على موقع ويب مع عميل لبعض الوقت الآن وقد نما الموقع نفسه بشكل كبير. نحن الآن في المرحلة التي تكافح فيها الآلة الفردية التي نستضيفها الموقع لمواكبة الطلبات وقمنا بتحسين الموقع بحد ذاته إلى أقصى حد ممكن (التخزين المؤقت وما إلى ذلك).

نحن الآن في المرحلة التي نحتاج فيها إلى إضافة خادم آخر لتحمل الضغط الإضافي الذي يؤدي إلى سؤالي - ما هي المخاطر المحتملة والمحاذير التي أحتاج إلى معرفتها أو اختبارها عند الانتقال إلى مزرعة ويب أو استضافة مجمعة بيئة؟

3
Wolfwyrd

هناك العديد من المحاذير المحتملة:

جلسات

إذا كانت الجلسات مخزنة من جانب الخادم ، (أي PHP) ، فإن كلا الخوادم ستحتاج إلى الوصول إلى مسار تخزين الجلسة المشترك. وإلا ، فستفقد جلسات العمل حيث يرسل موازن التحميل طلبًا من خادم إلى آخر ، أو ربما (اللحظات) يكون لدى مستخدم واحد بجلستين فريدتين. هذا يمكن أن يكون محبطا بشكل خاص مع أجاكس. قد تكون جلسات "الالتصاق" ممكنة أيضًا ، اعتمادًا على موازن التحميل لديك.

الملفات المؤقتة

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

قفل سكليتي

إذا كنت تستخدم SQLite3 ، فقد تلاحظ بعض المراوغات التي لم تظهر من قبل ، خاصة إذا كنت تستخدم شيئًا مثل NFS لمشاركة ملفات قاعدة البيانات بين الخوادم. NFS بطيء مع هذا ، لذلك أوصي باستخدام شيء آخر. من السهل إعداد أنظمة الملفات الموزعة مثل Luster ، أو يمكنك استخدام GFS/OCFS2.

SSL

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

بعض الملاحظات العامة:

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

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

  • موازين التحميل تحتاج إلى التكرار أيضًا.

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

1
Tim Post

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

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

التحدي الآخر الوحيد الذي واجهته في نسخ المحتوى بشكل صحيح إلى كافة الخوادم في المزرعة. هناك برنامج للقيام بذلك (نسخة robocopy ، و Fling من NCH برنامجان استخدمتهما) ، لكن لا يزال لدي حالات لم تعمل فيها المزامنة بنسبة 100٪ من الوقت.

0
Milner

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

إذا لم تكن بحاجة للقلق بشأن الحالة ، فعليك بناء موقع جيد ، وستكون الأمور جيدة نسبيًا مع وكيل وعدد قليل من الخوادم الخلفية.

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

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

هل تقوم بزيادة عدد خوادم قاعدة البيانات أيضًا؟ وهذا سيجلب مجموعة أخرى من المشاكل للقلق.

تمت مناقشة بعض مشكلات الجلسة في Stack Overflow Podcast رقم 6

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

قد ترغب أيضًا في قراءة معلومات حول Stack Overflow's تهيئة الشبكة

0
danivovich