الكفاءة الخارقة لتطبيقات النود

سلام عليكم أحببت أن أكلمكم عن أحد أهم مكونات منصة النود وهو موديل cluster

منصة النود كما تعرفون لاتستخدم thread لرفع من الكفاءة بل تستخدم event-loop وهو مدعوم ذاخل أنظمة الإشتغال في النواة بشكل مباشر فمثلا لينوكس يحتوي على man 7 epoll ونظام الفري بسد يحتوي على kqueue ونظام ويندوز يحتوى على نظام خاص به إيضا يسمح بتفقد الأحداث التي تقع ذاخل النظام مثلا وصول معلومات على بطاقة الشبكة أو فتح ملف عموما عمليات IO

لذا فتطبيقات النود فهي سريعة جدا مقارنة مع التطبيقات الأخرى المكتوبة بلغات سكريبت غير مكمبلة ولزياة الكفاءة يمكن إستخدام موديل cluster الذي يقوم بخلق عدد من النسخ من نفس التطبيق وتوزيعها على المعالجات فمثلا الآلة تتوفر على ثمانية معالجات فإنكم تقومون بخلق ثمانية من process worker من التطبيق بالإضافة إلى process الأب الذي يقوم بالتحكم بتلك النسخ الثمانية.

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


لاأوافقك الرأي فقد عملت على تطبيقات كبيرة نسبيا بالنود خدمات الموبايل لألاف من المسعملين والنود برهن على قوته في هذا المجال

وقد قمت بتجارب شخصية لمقارنة نود مع php, (slim, codeigniter, laravel) flask and python tornado, flash

وكانت النتائج جد عالية بالنسبة لخدمات التي ترسل json/xml

لذا لاأضن أنه توجد لغة سكريبت تفوق نود في الكفائة إلى حد الآن بالنسبة ل http وحتى tcp/ip

أما قولك أن نود فهو فقط لتطبيقات الصغيرة أضن أن paypal ليس بالصغير عندما قرر أصحابه الهجرة إلى نود

فأتقل منصة لنود مثلا express.js فهو أسرع من أحسن منصة في php وحتى php7 لاتتجاوز سرعتها 2000req/s مع إمكانية ضياع بعض الطلبات أما النود و mysql/mariadb/percona فتتجاوز 4000req/s

أما سرعة النود و /redis فتتجاوز 10,000req/s

أعرف تمام المعرفة مايمكن لآلة معينة أن تقوم به مع python/php مقارنة مع النود لذا قررت الهجرة تماما إلى هذه المنصة ونسيان الماضي البدائي لتلك اللغات

أما إستعراض الكفاءة بعرض benchmarks فهو لايعني أي شيئ, مثلا سواقة الخاصة ب mysql في أغلب لغات البرمجة مكتوبة ب C libmysql

فالنداء من لغة معينة لهذه المكتبة فهو جد مكلف أما السواقة الخاصة بنود فهي مكتوبة كليا بجافا سكريبت مما يعطي كفاءة عالية فمراكمة مثل هذه التفاصيل الصغيرة هي ما يعطي لتطبيق سرعة نهائية.

اخي العزيز ..

استخدم زر رد على رد (موجود اعلى الرد) وراجع ردي على الاخ Volker

paypal تستخدم node في بعض الأجزاء فقط مثل API لتطبيقات الهواتف أو التنبيهات REAL TIME أما كل ما يتعلق بالحسابات و الأموال و عمليات الدفع و الإستقبال فهي مبنية حصراً بلغة JAVA و بإستعمال (EJB (Entreprise JAVA Beans مثلها مثل أغلب خدمات البنوك و البورصات حول العالم ..

انا شاكك بخصوص real time .. لاكن انا متأكد بان خادم الواجهة مكتوبة ب nodejs.

مصدر/