سؤال

من بين جميع المقالات التي قرأتها حتى الآن عن Mochiweb ، سمعت هذا مرارًا وتكرارًا أن Mochiweb يوفر قابلية جيدة جدًا. سؤالي هو ، كيف بالضبط Mochiweb يحصل على خاصية قابلية التوسع؟ هل هو من خصائص قابلية التوسع المتأصلة في إرلانج أم هل لدى Mochiweb أي رمز إضافي يمكّنه صراحة من التوسع جيدًا؟ بعبارة أخرى ، إذا كنت سأكتب خادم HTTP بسيط في Erlang بنفسي ، مع "حلقة" بسيطة (وظيفة عودية) للتعامل مع الطلبات ، فهل سيكون له نفس المستوى من قابلية التوسع مثل خادم ويب بسيط مصمم باستخدام إطار عمل MochiWeb؟

تحديث: أنا لا أخطط لتنفيذ خادم ويب كامل في مهب يدعم كل ميزة ممكنة. متطلباتي محددة للغاية - للتعامل مع بيانات النشر من نموذج HTML مع عناصر تحكم ثابتة.

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

المحلول

Mochiweb ليس قابلاً للتطوير ، بقدر ما أفهمه. إنها مكتبة خادم سريعة وصغيرة يمكنها التعامل مع آلاف الطلبات في الثانية. الطريقة التي لا علاقة لها بـ "قابلية التوسع" (بصرف النظر عن ضبط عدد mochiweb_acceptorS التي تستمع في أي وقت معين).

ما تحصل عليه مع Mochiweb هو مكتبة خادم ويب صلبة ، وميزات قابلية التوسع في Erlang. إذا كنت ترغب في تشغيل خادم mochiweb واحد ، عندما يأتي الطلب ، لا يزال بإمكانك إلغاء تحميل عمل معالجة هذا الطلب إلى أي جهاز تريده ، وذلك بفضل البنية التحتية للعقدة الموزعة من Erlang ومرور الرسائل الرخيصة. إذا كنت ترغب في تشغيل خوادم Mochiweb متعددة ، فيمكنك وضعها خلف موازن الحمل واستخدام الميزات الموزعة لـ Mnesia لمزامنة بيانات الجلسة بين الآلات.

النقطة المهمة هي أن mochiweb صغير وسريع (كافي). Erlang هي أداة القدرة على التوسع.


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

نصائح أخرى

المحتمل. :-)

إذا كنت تريد كتابة خادم ويب يتعامل مع كل طلب في عملية منفصلة (مؤشر ترابط الوزن الخفيف في Erlang) ، فيمكنك الوصول إلى نفس النوع من "قابلية التوسع" بسهولة. بالطبع ستكون مجموعة الميزات مختلفة ، إلا إذا قمت بتنفيذ كل شيء لدى Mochiweb.

لدى Erlang أيضًا دعمًا كبيرًا لتوزيعها بين العديد من الآلات ، فقد يكون هذا ممكنًا لاكتساب المزيد من قابلية التوسع.

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