2012-05-07 15 views
6

मैं गैर-अवरुद्ध भलाई प्राप्त करने के लिए ning async http क्लाइंट का उपयोग कर रहा हूं। एक सेब बनाम सेब परीक्षण (गैर अवरुद्ध बनाम अवरुद्ध) करना, मैं देख रहा हूं कि गैर अवरुद्ध संस्करण अधिक अनुरोध नमूने की सेवा कर रहा है, हालांकि async http क्लाइंट अपने अवरुद्ध समकक्ष की तुलना में अधिक धागे बना रहा है। क्या यह उम्मीद है या कुछ जो मुझे याद आ रही है?Async http क्लाइंट (ning) और धागे बनाते हैं?

यहाँ तनाव परीक्षण

Async Http Client 
jMeter - 2 threads, 120 seconds, 1 sec ramp up 
Peak threads : 270 
Heap usage: 600mb 
Peak cpu usage: 30% 
Total samples: 18228 

Blocking version 
jMeter - 2 threads, 120 seconds, 1 sec ramp up 
Peak threads: 118 
heap usage: 260mb 
cpu usage: 18% 
total samples: 1472 

मैं कनेक्शन की एक थ्रेड पूल बनाने रहा से नंबर दिए गए हैं (उन्हें पुन: उपयोग)

AsyncHttpClientConfig.Builder builder = new AsyncHttpClientConfig.Builder(); 
builder.setRequestTimeoutInMs(2000); 
builder.setMaximumConnectionsPerHost(10); 
builder.setMaximumConnectionsTotal(100); 
client = new AsyncHttpClient(builder.build()); 

वहाँ कुछ मैं यहाँ याद आ रही है है? मैंने थ्रेड बनाने के लिए थ्रेड डंप को देखने की कोशिश की, लेकिन कुछ भी उपयोगी नहीं मिला। मेरी शर्त यह है कि प्रत्येक http कनेक्शन के लिए एक थ्रेड है जो async http क्लाइंट में I/O पूर्ण होने पर कॉलबैक को आग लगाना है। रेपो की तरह ले जाया गया

उत्तर

11

संपादित 11/16/2015

लग रहा है। this line देखें जहां आप इस्तेमाल किए गए थ्रेडफ़ैक्टरी को बदल सकते हैं। यदि यह सेट नहीं है, तो ऐसा लगता है कि यह डिफ़ॉल्ट का उपयोग करता है। इसका उपयोग ChannelManager here द्वारा किया जाता है।

तुम भी देखा here

मूल w/मृत लिंक हटा दिया

कोड पर एक त्वरित दृष्टि के रूप में सरल क्लाइंट पर सेट कर सकते हैं - यह आवेदन थ्रेड पूल की तरह दिखता है एक निर्वाहक सेवा का उपयोग करता वह एक कैश थ्रेड पूल है, जो थ्रेड को आवश्यकता के रूप में बनाता है। आप निष्पादक सेवा सेट कर सकते हैं जिसे आपका क्लाइंट बिल्डर पर सेटटर का उपयोग करके उपयोग करता है।

+0

बढ़िया है, बहुत बहुत धन्यवाद – Vinodh

+0

https://github.com/AsyncHttpClient/async-http-client/blob/master/api/src/main/java/org/asynchttpclient/AsyncHttpClientConfig.java आप इंगित करने के लिए कोई आपत्ति होगी लाइन 160 थोड़ा और अधिक (जैसे फ़ंक्शन नाम, वहां क्या देखना है) क्योंकि यह हालिया रिलीज में बदल गया है –

+0

यहां दिए गए लिंक काम नहीं कर रहे हैं !!! –

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