1) क्या aws sdk का कार्यान्वयन है जो थ्रेड पूल के बजाय एसिंक्रोनस I/O का उपयोग करता है?
मुझे नहीं पता कि, और यह आश्चर्यचकित होगा कि यह खोजना मुश्किल हो सकता है, अगर यह पहले से मौजूद होगा।
2) वर्तमान ग्राहक अपाचे HTTP क्लाइंट का उपयोग करता है, अगर मैं एक asynch कार्यान्वयन मैं इसे लागू करने के लिए अपने खुद के संस्करण कांटा होगा नहीं मिल रहा। [...] क्या कोई बेहतर वैकल्पिक है?
वहाँ वास्तव में एक बेहतर विकल्प है - AWS SDK for Java वर्तमान में Apache HttpComponents से Http Client संस्करण 4.x (यदि आप विरासत 3.1 संस्करण Javadocs से जुड़ा हुआ), जो आसानी से एक Async HttpClient भी प्रदान करता है का उपयोग करता है:
Async HttpClient एक HTTP/1.1 आज्ञाकारी HTTP एजेंट कार्यान्वयन httpcore NIO और HttpClient घटकों पर आधारित है। यह एक विशेष मॉड्यूल है जो अपाचे एचटीपी क्लाइंट विशेष मामलों के लिए है, जहां एक बड़ी संख्या में समवर्ती कनेक्शन को संभालने के लिए प्रदर्शन से कच्चे डेटा थ्रूपुट के संदर्भ में अधिक महत्वपूर्ण है। [जोर मेरा]
के रूप में बल दिया है, यह केवल संबंधित के लिए मदद की जानी चाहिए मामलों का उपयोग करता है, लेकिन (के रूप में प्रति your comment) आप एडब्ल्यूएस करने के लिए अनुरोध के हजारों भेजने हैं जिसका अर्थ है कि खुले अनुरोधों अप पाइल के लिए करते हैं , तो यह वास्तव में मदद कर सकता है।
स्रोत
2012-02-12 19:23:51
_ "सीपीयू बोतल गर्दन अमेज़न करने के लिए सभी कनेक्शनों है" _ नहीं, यह एक (नेटवर्क) है (उत्पादन उपयोग अभी तक के लिए अनुशंसित नहीं) मैं/हे बाधा एक सीपीयू बाधा है, ** परिभाषा के अनुसार, ** सीपीयू में। –
आप सही हैं कि नेटवर्क बोतल की गर्दन है लेकिन मैं उस नेटवर्क I/O पर CPU समय और धागे को बर्बाद नहीं करना चाहता हूं। एचप्रोफ रिपोर्ट से पता चलता है कि अधिकांश सीपीयू नमूने सॉकेट को मतदान में होते हैं। –
अंतर यह है कि आप क्या हासिल करने की उम्मीद करते हैं। असिंक्रोनस I/O आपको सेवा विलंबता से नहीं बचा सकता है: यह आपके अनुरोध पर आपके अनुरोध की जादुई रूप से तेज़ी से एडब्ल्यूएस का संचालन नहीं करता है। हालांकि, आप प्रतीक्षा करते समय, अधिक सार्थक स्थानीय गणना कर सकते हैं। तो उस मामले के लिए एक थ्रेड पूल होगा। – phs