2009-09-14 6 views
18

यह शायद एक बेवकूफ सवाल है, लेकिन वास्तव में एक "गैर-अवरुद्ध वेब सर्वर" क्या है? सभी वेब सर्वर तकनीकी रूप से गैर-अवरुद्ध हैं, है ना? अन्यथा वे एक साथ कनेक्शन कैसे संभाल सकते हैं? अपाचे 2 फोर्क() और pthreads के संयोजन का उपयोग करके इसे प्राप्त करता है। टोरनाडो (और मुड़कर भी) अलग-अलग कैसे हैं? क्या वे सिर्फ गैर-बॉकिंग मोड में सॉकेट का एक गुच्छा सेट करते हैं, एक एफडी सूची (या समतुल्य) का निर्माण करते हैं, और फिर उस पर लूप को एक बड़े चयन() sys कॉल के साथ सेट करते हैं?टोरनाडो "पाइथन में लिखे गए अपेक्षाकृत सरल, गैर-अवरुद्ध वेब सर्वर ढांचे" है - क्या कुछ हद तक इसका अर्थ बता सकता है?

आप इन तरह के ढांचे का उपयोग कहां करेंगे, और वे आपको अपाचे 2 (या अन्य लोकप्रिय सर्वर) पर क्या फायदे दे सकते हैं? धन्यवाद

उत्तर

12

यह article on EventMachine भी आप एक संकेत दे सकते हैं:

/ पिरोया वेब सर्वर forking की परंपरा में डूबी मैं अपने आप को पाया बल्कि आश्चर्य जब मैं विश्वविद्यालय में में से एक अनुसंधान परियोजनाओं में शामिल हो गए वाटरलू कुछ साल पहले: हम विभिन्न वेब-सर्वर आर्किटेक्चर का बेंचमार्किंग कर रहे थे, और शीर्ष कलाकार सभी ईवेंट-संचालित सर्वर थे।

जैसा कि मैंने सवालों के साथ हर किसी को सताया, मैं जल्दी से पता चला क्यों - एक दूसरे का अनुरोध करता है, forking और संदर्भ धागा प्रबंधन से जुड़े स्विचिंग निषेधात्मक महंगा (कांटा बन लाखों के साथ एक वातावरण में सबसे खराब प्रदर्शन जारी रहता है, के रूप में यह प्रत्येक बार पेरेंट प्रक्रिया पर एक स्मृति प्रतिलिपि करता है)। जबकि तुलनात्मक रूप से, भारी भार के तहत प्रदर्शन की बात आती है, तो एक कसकर और अत्यधिक अनुकूलित ईवेंट-लूप वास्तव में चमकता है।

+0

धन्यवाद, मैं सोच रहा था क्या एक घटना लूप का चयन करें()/epoll() वास्तुकला के बारे में इतना उल्लेखनीय था (कुछ मैं एक टीसीपी पुस्तक में पहले yeaaaars के बारे में पढ़ा है), और क्यों यह धागे की तुलना में बेहतर हो सकता है। –

संबंधित मुद्दे