سؤال

حسنًا ، تورنادو غير محافظ وسريع للغاية ويمكنه التعامل مع الكثير من الطلبات الدائمة بسهولة.

لكنني أعتقد أنها ليست رصاصة فضية ، وإذا كنا ندير بشكل أعمى مقرها Django أو أي موقع آخر مع Tornado ، فلن يعطي أي دفعة أداء.

لم أتمكن من العثور على شرح شامل لهذا ، لذلك أسأله هنا:

  • متى يجب استخدام الإعصار؟
  • متى يكون عديم الفائدة؟
  • عند استخدامه ، ما الذي يجب أن يؤخذ في الاعتبار؟
  • كيف يمكننا أن نجعل غير فعال موقع باستخدام تورنادو؟
  • يوجد خادم و Webframework. متى يجب أن نستخدم الإطار ومتى يمكننا استبداله بآخر؟
هل كانت مفيدة؟

المحلول

يوجد خادم و Webframework. متى يجب أن نستخدم الإطار ومتى يمكننا استبداله بآخر؟

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

Tornado و Twisted هي أطراف توفر الدعم غير المحظور غير المتزامن لتطبيق تطبيقات الويب / الشبكات.

متى يجب استخدام الإعصار؟ متى يكون عديم الفائدة؟ عند استخدامه ، ما الذي يجب أن يؤخذ في الاعتبار؟

بطبيعتها للغاية ، يعمل I/O غير المحظور بشكل رائع عندما يكون I/O مكثفًا وليس كثيفًا للحساب. تناسب معظم تطبيقات الويب / الشبكات بشكل جيد لهذا النموذج. إذا كان التطبيق الخاص بك يتطلب بعض المهمة المكثفة الحسابية التي يتعين القيام بها ، فيجب تفويضها لبعض الخدمات الأخرى التي يمكنها التعامل معها بشكل أفضل. بينما يمكن لـ Tornado / Twisted القيام بمهمة خادم الويب ، فإن الاستجابة لطلبات الويب.

كيف يمكننا جعل موقع غير فعال باستخدام إعصار؟

  1. افعل أي شيء مهمة مكثفة حسابية
  2. تقديم عمليات الحظر

لكنني أعتقد أنها ليست رصاصة فضية ، وإذا كنا ندير بشكل أعمى مقرها Django أو أي موقع آخر مع Tornado ، فلن يعطي أي دفعة أداء.

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

يوفر Tornado و Twisted أداءً معقولًا وهو مفيد لبناء تطبيق ويب أداء للغاية. يمكنك التحقق من الشهادات لكل من Twisted و Tornado لمعرفة ما يمكنهم.

نصائح أخرى

أنا آسف للإجابة على سؤال قديم ، لكنني صادفت هذا السؤال وتساءلت لماذا لم يكن لديه المزيد من الإجابات. للإجابة على سؤال Bart J:

أود تحليل خلاصات RSS في تطبيق الإعصار. هل تعتبر ذلك مكثفة إلى حد ما؟

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

مفتاح الأنظمة السريعة هو الهندسة المعمارية العظيمة ، وليس إلى حد كبير التفاصيل بقدر ما هي الإطار الذي تستخدمه (Twisted ، Tornado ، Apache+PHP). تورنادو لديه أسلوب معالجة غير متزامن وهذا هو حقا ما يأتي الكثير منه في رأيي. Node.js و Twisted و yaws هي أمثلة على خوادم الويب غير المتزامنة الأخرى التي تتوسع جيدًا بسبب نهج خفيف الوزن وأسلوب المعالجة غير المتزامن.

لذا:

متى يجب استخدام الإعصار؟

متى يكون عديم الفائدة؟

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

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

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