2012-04-03 16 views
5

मैं इस Question के माध्यम से लंबे मतदान के बारे में जा रहा था, जहां समाधान प्रदान करने के अलावा अपाचे की अक्षमता के संबंध में बड़ी संख्या में अनुरोधों को संभालने के लिए एक दिलचस्प बिंदु बनाया गया है। अपाचे टोमकैट के लिए मुझे भी यही चिंता थी?लांग पोलिंग के लिए अपाचे टॉमकैट कितना कुशल है?

अपाचे टॉमकैट लंबे मतदान को संभालने के लिए पर्याप्त कुशल है। मुझे एक बात पता है कि अपाचे टॉमकैट समेकित धागे की काफी बड़ी संख्या का समर्थन करता है, लेकिन क्या यह इस तरह की सीमा तक बढ़ाया गया है कि हम उपरोक्त वर्णित धागे के तरीके में लंबे मतदान के लिए इसका उपयोग कर सकते हैं?

+0

मेरी राय में, जब भी संभव हो, इस प्रकार की सेवा को संभालने के लिए मैं एक सेमफोर (कताई ताला) के साथ एक छोटा मतदान दृष्टिकोण पसंद करता हूं। यदि आप सटीकता के कुछ सौ मिलीसेकंड (सबसे खराब मामला, आमतौर पर केवल मिलीसेकंड के दसियों) का त्याग कर सकते हैं तो आप समवर्ती उपयोगकर्ताओं की एक बड़ी संख्या का समर्थन करने में सक्षम होने के लाभों का लाभ उठा सकते हैं। –

+0

@TravisJ हाँ विकल्पों में से एक है लेकिन लक्ष्य फेसबुक की कार्यक्षमता की तरह हासिल करना है जहां हमारे पास वास्तविक समय अपडेट हैं और हम फेसबुक से देख सकते हैं कि ग्राहक हमेशा अनुरोध कर रहा है। –

+0

फेसबुक का कौन सा हिस्सा? सभी फेसबुक लाइव सामग्री नहीं है। क्या आपका मतलब लाइव चैट है? –

उत्तर

5

आप

अपाचे की तरह एक नियमित रूप से वेब सर्वर पर इस चल जल्दी से सभी "कार्यकर्ता धागे 'बाँध और होगा question पर यह टिप्पणी की चर्चा करते हुए कर रहे हैं,
छोड़ यह अन्य के लिए प्रतिक्रिया करने में असमर्थ अपाचे बिल्ला की

हाल संस्करणों का समर्थन comet जो अवरुद्ध आईओ बिल्ला अनुरोध की एक बड़ी संख्या के लिए पैमाने पर करने की अनुमति के लिए गैर की अनुमति देता है अनुरोध करता है। इसी से यह article,

गैर अवरुद्ध I/O क्षमता जावा 4 की नई मैं में शुरू करने के लिए धन्यवाद/जावा प्लेटफार्म (NIO) पैकेज के लिए हे एपीआई, एक लगातार HTTP कनेक्शन की आवश्यकता नहीं है एक है कि थ्रेड लगातार इसके साथ जुड़ा हुआ है। अनुरोधों को केवल संसाधित होने पर कनेक्शन को आवंटित किया जा सकता है। जब कनेक्शन के बीच कनेक्शन निष्क्रिय होता है, तो थ्रेड पुनर्नवीनीकरण किया जा सकता है, और कनेक्शन एक केंद्रीकृत एनआईओ चयन में अलग थ्रेड का उपभोग किए बिना नए अनुरोधों का पता लगाने के लिए सेट किया गया है। यह मॉडल, जिसे थ्रेड प्रति अनुरोध कहा जाता है, संभवतः वेब सर्वर को धागे की निश्चित संख्या के साथ उपयोगकर्ता कनेक्शन की बढ़ती संख्या को संभालने की अनुमति देता है। उसी हार्डवेयर कॉन्फ़िगरेशन के साथ, वेब सर्वर में चल रहे हैं यह मोड थ्रेड-प्रति-कनेक्शन मोड की तुलना में काफी बेहतर है। आज, लोकप्रिय वेब सर्वर - टॉमकैट, जेट्टी, ग्लासफ़िश (ग्रीज़ली), वेबलॉगिक और वेबस्फेयर समेत - जावा एनआईओ के माध्यम से प्रति अनुरोध सभी थ्रेड का उपयोग करें।

+0

'केंद्रीकृत एनआईओ चयन सेट 'का क्या अर्थ है? – John

2

इस report comparing Tomcat and Jetty for Comet देखें:

  • बिलाव जब वहाँ कुछ बहुत व्यस्त कनेक्शन हैं थोड़ा बेहतर प्रदर्शन हो जाता है। अनुरोध विलंबता में इसका थोड़ा सा फायदा है, जो कि सबसे स्पष्ट है जब किसी भी निष्क्रिय निष्क्रिय समय के बिना कुछ कनेक्शन/प्रतिक्रियाओं को कई कनेक्शनों पर भेजा जाता है।

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

  • जेट्टी भी की सेवा स्थैतिक सामग्री के संबंध में बेहतर प्रदर्शन किया है के रूप में जेट्टी उपयोगकर्ता स्मृति में प्रवेश के बिना अग्रिम स्मृति मैप की गई फ़ाइल बफ़र्स NIO के साथ संयुक्त उपयोग करने के लिए राईट इकट्ठा ऑपरेटिंग सिस्टम को निर्देश देने अधिकतम डीएमए गति से फ़ाइल सामग्री भेजने के लिए सक्षम है अंतरिक्ष या जेवीएम।

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

इसके अतिरिक्त, जेटी टीम धूमकेतु के अग्रदूत थे, और मुझे मिली अधिकांश जानकारी और उदाहरण जेटी पर केंद्रित हैं। हमने जेटी को 2008 से धूमकेतु सर्वर पर इस्तेमाल किया है और परिणाम से खुश हैं।

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

यदि आप धूमकेतु अनुरोधों के लिए टॉमकैट का उपयोग करते हैं, तो आपको अधिकतम 8080 पोर्ट और अपाचे बाईपास तक पहुंचने की अनुमति होगी, क्योंकि अपाचे आपके लंबे मतदान को अस्वीकार कर सकता है।

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