मुझे विशेष HTTP सर्वर बनाने की आवश्यकता है, इसके लिए मैं एपोल सिकॉल का उपयोग करने की योजना बना रहा हूं, लेकिन मैं एकाधिक प्रोसेसर/कोर का उपयोग करना चाहता हूं और मैं आर्किटेक्चर समाधान के साथ नहीं आ सकता। एटीएम मेरा विचार followng है: अपने एपोल डिस्क्रिप्टर के साथ कई धागे बनाएं, मुख्य धागा कनेक्शन स्वीकार करता है और उन्हें थ्रेड एपोल के बीच वितरित करता है। लेकिन क्या कोई बेहतर समाधान है? उच्च लोड आर्किटेक्चर पर मैं कौन सी किताबें/लेख/गाइड पढ़ सकता हूं? मैं केवल C10K लेख देखा है, लेकिन उदाहरण के लिए सबसे अधिक लिंक मृत इस विषय :(पर कोई में गहराई से किताबें हैं :(और अभी भीसी: एपोल और मल्टीथ्रेडिंग
जवाब के लिए धन्यवाद
युपीडी:।। कृपया अधिक हो विशिष्ट, मैं सामग्री और उदाहरण (nginx एक उदाहरण है क्योंकि इसकी बहुत जटिल है और कई अमूर्त परतों कई सिस्टम का समर्थन करने के लिए नहीं है)।
अरे डैनियल, मैं सोच रहा था कि यह कैसे साथ आ रहा था। मैं इस विषय में कुछ शोध कर रहा हूं और मेरा मानना है कि इवेंट संचालित सर्वर की मेरी अवधारणा अभी थोड़ा कमजोर हो सकती है। मेरे ज्ञान के लिए, ऐसा लगता है कि अगर हमारे पास एक ईवेंट संचालित बैक एंड है (एपोल का उपयोग करके कहें) जिसे हर फंक्शन कहा जाता है, उसे अवरुद्ध करना पड़ता है ... शायद यह मेरा डिज़ाइन है, लेकिन प्रत्येक अनुरोध जो डेटाबेस कॉल करता है .. यदि वह कॉल किसी भी कारण से धीमा है, तो सभी अन्य क्लाइंट बनाने के अनुरोध भी एक ही समय में डेटाबेस प्रतिक्रिया के समाप्त होने की प्रतीक्षा के कारण पीड़ित हैं। मैं एक धागा बना सकता हूं .. उद्देश्य को हराता है। – Begui
वास्तव में यह नहीं आ रहा है, यह लंबे समय से libev का उपयोग कर समाप्त हुआ :) कुछ फ़ंक्शन अभी भी मेरे ऐप में अवरुद्ध कर रहे हैं, बस उनका ब्लॉक समय वास्तव में छोटा है। लेकिन डेटाबेस क्वेरी जैसे I चीजें, I/o संचालन (विशेष रूप से जब वे वास्तव में गहन होते हैं) गैर-अवरुद्ध होना चाहिए। मेरे मामले में मैं अपने एसिंक-सक्षम ड्राइवर के साथ मोंगोडब का उपयोग कर रहा हूं इसलिए डीबी का उपयोग करते समय मेरे पास कोई अवरोध नहीं है। मेरे पास चीजों के लिए थ्रेड पूल हैं जो मैं एसिंक्रोनस (यानी छवि मैगिक इमेज प्रोसेसिंग और सीएसएस/जेएस मिनीमाइज़र) नहीं बना सकता, लेकिन वे कतारों के माध्यम से संचालित होते हैं और एपोल (स्वयं कतार कार्यान्वयन) द्वारा निगरानी रखे जाते हैं। – Daniel