सबसे पहले जरूरत है, अनुरोध किया जा सकता है स्वतंत्र रूप से संभाला। हालांकि, सर्वर एक साथ उन अनुरोधों की संख्या को बनाए रखने के लिए संभालते हैं जिन्हें अधिकतम समय पर संभाला जा सकता है।
समेकन की इस अवधारणा के कार्यान्वयन वेबसर्वर पर निर्भर करता है।
कुछ कार्यान्वयन में अनुरोधों को संभालने के लिए थ्रेड या प्रक्रियाओं की एक निश्चित संख्या हो सकती है। यदि सभी उपयोग में हैं, तो अतिरिक्त अनुरोधों को संभालने तक इंतजार करना होगा।
एक और संभावना यह है कि प्रत्येक अनुरोध के लिए एक प्रक्रिया या धागा पैदा होता है। प्रत्येक अनुरोध के लिए एक प्रक्रिया को जन्म देने से एक बेतुका स्मृति और सीपीयू ओवरहेड होता है। हल्के धागे की चमक बेहतर है। ऐसा करने से, आप प्रति सेकंड सैकड़ों ग्राहकों की सेवा कर सकते हैं। हालांकि, धागे भी अपने प्रबंधन को ऊपर की ओर लाते हैं, जो खुद को उच्च स्मृति और सीपीयू खपत में प्रकट करते हैं।
प्रति सेकेंड हजारों ग्राहकों की सेवा के लिए, एसिंक्रोनस कोरआउटिन पर आधारित एक ईवेंट-संचालित आर्किटेक्चर एक अत्याधुनिक समाधान है। यह सर्वर को थ्रेड के ज़िलियन के बिना उच्च दर पर ग्राहकों की सेवा करने में सक्षम बनाता है। Wikipedia page of the so-called C10k problem पर आपको वेब सर्वर की एक सूची मिलती है। उनमें से कई लोग इस वास्तुकला का उपयोग करते हैं।
कोरियटिन भी पाइथन के लिए उपलब्ध हैं। http://www.gevent.org/ पर देखें। यही कारण है कि uWSGI + गीवेंट पर आधारित एक पायथन डब्लूएसजीआई ऐप एक बेहद सक्षम समाधान है।
स्रोत
2012-09-26 14:43:25
क्या राज्य साझा करना? वेब अनुरोधों का पूरा बिंदु यह है कि प्रत्येक स्वतंत्र है, कोई साझा स्थिति नहीं है। –