2011-01-29 11 views
20

के माध्यम से अनुरोधों से जुड़े थ्रेड कैसे हैं I वर्तमान में node.js. के बारे में बहुत कुछ पढ़ रहे हैं। पारंपरिक थ्रेड प्रति अनुरोध मॉडल (अपाचे) का उपयोग कर सर्वरों के बीच लगातार तुलना होती है, और सर्वर जो घटना लूप (Nginx, node, Tornado) का उपयोग करते हैं।Http.sys, IIS और ASP.NET

मैं एएसपी.नेट में अनुरोध कैसे संसाधित किया जाता है, इस बारे में विस्तार से जानना चाहता हूं - बिंदु से यह http.sys में प्राप्त होता है जिस तरह से इसे एएसपी.नेट में संसाधित किया जाता है। मुझे http.sys और आईआईएस पर एमएसडीएन दस्तावेज थोड़ा कम पाया है, लेकिन शायद मेरा google-fu आज कमजोर है। अब तक, मैंने पाया है कि सबसे अच्छा संसाधन Thomas Marquardt's Blog पर एक पोस्ट है।

क्या कोई इस विषय पर अधिक प्रकाश डाल सकता है, या मुझे किसी अन्य संसाधन पर इंगित कर सकता है?

अब तक अपना शोध से

+2

मेरा Google-fu http://www.west-wind.com/presentations/howaspnetworks/howaspnetworks.asp बदल जाता है जो आपके प्रश्न का उत्तर दे सकता है –

+0

यह एक अच्छा सवाल है, और कुछ मैंने खुद को आश्चर्यचकित कर दिया है। – Jake

उत्तर

7

(इस सवाल के प्रयोजनों मैं केवल एक विशिष्ट एकीकृत पाइप लाइन के साथ IIS7 में रुचि के लिए), इसकी मेरी समझ जब एक अनुरोध उस में आता है एक kernel- में डाल दिया जाता है कि मोड अनुरोध कतार। this के अनुसार, यह संदर्भ स्विचिंग के साथ कई समस्याओं से बचाता है जब बड़ी मात्रा में अनुरोध (या प्रक्रियाओं या धागे ...) होते हैं, जो आईओ को समान लाभ प्रदान करते हैं। लेख से उद्धरित:

"। प्रत्येक अनुरोध कतार एक अनुप्रयोग पूल से मेल खाती है एक आवेदन पूल HTTP.sys और एक या अधिक कार्यकर्ता प्रक्रियाओं के भीतर एक अनुरोध कतार से मेल खाती है।"

तो इसके अनुसार, प्रत्येक अनुरोध कतार में एक से अधिक "Worker Process" हो सकता है। (गूगल कैश) More on worker processes

मेरी समझ से:

  • आईआईएस खोलता एक अनुरोध कतार (नीचे http.sys एपीआई देखें)
  • ए 'वेब साइट "आईआईएस में विन्यस्त एक कार्यकर्ता से मेल खाती है बनाता है प्रक्रिया
  • एक वेब साइट/कार्यकर्ता प्रक्रिया shares थ्रेड पूल।
  • एक थ्रेड अनुरोध कतार से अनुरोध सौंप दिया गया है।

यहाँ के बारे में IIS7's architecture

महान जानकारी का एक बहुत कुछ यहाँ कुछ अधिक जानकारी http.sys के बारे में है।

खुले प्रश्न मैं अभी भी है:

  • कैसे हो आईआईएस सर्वर हेडर बदलने अगर यह http.sys का उपयोग करता है करता है?(See this question)

नोट: मैं अगर/कैसे एक "कर्नेल-मोड अनुरोध कतार" एक IO completion port से मेल खाती है, मुझे लगता है यह होगा कि प्रत्येक अनुरोध का अपना होता है, लेकिन मैं नहीं जानता कि यकीन नहीं है , इसलिए मुझे सच में उम्मीद है कि कोई इसका और अधिक जवाब देगा। मैं बस this question पर ठोकर खा रहा हूं और ऐसा लगता है कि http.sys वास्तव में आईओ प्राप्ति बंदरगाहों का उपयोग करता है, जो आईओ (नोड.जेएस, एनजिनएक्स, लाइटटीपीडी, सी 10 के, इत्यादि ...) के लगभग सभी लाभ प्रदान करता है।

+0

बहुत अधिक जानकारी प्रदान करने के लिए धन्यवाद। अगर कोई और योगदान देना चाहेगा तो मैंने उस प्रश्न के लिए खुला प्रश्न छोड़ा है। मैंने इसे आईआईएस फोरम पर भी पोस्ट करने के लिए उन लोगों को कोशिश करने और प्रोत्साहित करने के लिए पोस्ट किया है। –

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