2012-05-14 15 views
23

मैं अब दो साल से जेटी/टॉमकैट ऐप सर्वर का उपयोग कर वसंत वेब अनुप्रयोगों के साथ काम कर रहा हूं, हालांकि जो चीज मुझे अभी भी बढ़ाती है वह यह है कि इन सर्वरों में एकाधिक अनुरोध कैसे प्रबंधित किए जाते हैं। मैं समझता हूं कि स्प्रिंग सिंगलेट बनाने में सहायक है, लेकिन मेरी समझ बस उस तक ही सीमित है। क्या कोई भी किसी भी अच्छे संसाधन को इंगित कर सकता है जो मुझे समझने में सहायता कर सकता है कि एकाधिक अनुरोध कैसे प्रबंधित किए जाते हैं।जेटी कई अनुरोधों को कैसे संभालता है

उत्तर

27

इस पर उत्तर दिया जा सकता है कि मैं इसे कितने जवाब दे रहा हूं, यह पता लगाने की कोशिश कर रहा हूं कि मैं इसका जवाब कैसे दूंगा ... इसलिए मैं इसे एक उच्च स्तरीय शॉट ले जाऊंगा।

यह सर्वर पोर्ट है जो जेटी सुनता है और कुछ स्वीकार्य धागे जिनके काम क्लाइंट और सर्वर पक्ष के बीच कनेक्शन ऑब्जेक्ट प्राप्त करना है। एक बार आपके पास यह कनेक्शन हो जाने के बाद यह जेटी हैंडलर आर्किटेक्चर के माध्यम से प्रमाणीकरण जैसी चीजें कर रहा है, या सत्र आईडी खींच रहा है और अनुरोध पर सत्र ऑब्जेक्ट संलग्न कर रहा है। फिर यह सर्वलेट हैंडलर में अपना रास्ता काम करता है और उपयुक्त सर्वलेट पाया जाता है और आप servlet-api से निपटना शुरू करते हैं। उस समय आपके पास सर्वलेट-एपीआई में कम से कम सर्वलेट 2.5 के तहत आपके अनुरोध के लिए आवंटित एक थ्रेड है। सर्वलेट 3.0 में आपके पास कुछ एसिंक तंत्र उपलब्ध हैं, या आप जेटलेट-निरंतरताओं का उपयोग सर्वलेट 2.5 एपीआई पर एसिंक समर्थन प्राप्त करने के तरीके के रूप में कर सकते हैं।

वैसे भी, एक थ्रेड पूल है जो सर्वर उन कनेक्टरों को थ्रेड आवंटित करने के लिए उपयोग करता है जो अंततः सर्वलेट-एपीआई में अपना पूरा समय बिताते हैं। जेटी निरंतरता एपीआई और नया सर्वलेट 3.0 समर्थन थ्रेड को प्राथमिक थ्रेडपूल पर वापस लाने के लिए तंत्र प्रदान करता है ताकि वे अन्य अनुरोधों को स्वीकार करने और संसाधित करने में समय व्यतीत कर सकें।

स्पष्ट रूप से निओ एपी के उपयोग से जुड़े कवर के तहत और जेट्टी कुशलतापूर्वक इन सभी चीजों का प्रबंधन कैसे करता है, लेकिन शायद यह आपके शुरुआती प्रश्न को पूरा करने के लिए पर्याप्त है। यदि नहीं, तो जेटी डॉक्स (http://www.eclipse.org/jetty/documentation/current) को समझने के लिए स्वतंत्र महसूस करें या जेटी मेलिंग सूचियों को देखें। जेटी -9 अनुकूलन पर कुछ चर्चा हुई है क्योंकि यह वेबटाइड (http://webtide.com/blogs) पर ब्लॉग में http, spdy, और websocket कनेक्शन हैंडलिंग और प्रसंस्करण के साथ कवर के अंतर्गत संबंधित है।

+0

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

+1

सर्विसेज थ्रेडसेफ नहीं हैं और एकाधिक थ्रेड उसी सेवा() या डूपोस्ट() विधियों के माध्यम से चल सकते हैं, 'राज्य' विधि और थ्रेड में आने वाले चर के साथ रखा जाता है। जबकि आप servlets स्वयं को स्वयं को राज्य कर सकते हैं और सिंक्रनाइज़ किए गए चीजों का प्रबंधन कर सकते हैं और आप आमतौर पर नहीं चाहते हैं कि आपके सर्वलेट एकल थ्रेड हो जाएं, पूरा विचार एक साथ कई अनुरोधों को सेवा करने में सक्षम होना है और आप ऐसा नहीं कर सकते एक सर्वलेट के रूप में सरल कुछ पर अवरुद्ध धागे है। –

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