2011-06-15 18 views
7

node.js पर एक वेब सर्वर चलाना एक साधारण बात है (जैसा कि इसके उत्कृष्ट उदाहरण और दस्तावेज़ीकरण द्वारा देखा गया है) लेकिन मुझे आश्चर्य है कि आप CPU संसाधनों का पूरी तरह से उपयोग कैसे कर सकते हैं एक समर्पित सर्वर का?एक मशीन पर node.js सर्वर उदाहरणों का क्षैतिज स्केलिंग

चूंकि node.js एकल प्रोसेसर का लाभ लेने का एकमात्र तरीका एकाधिक प्रक्रियाओं के माध्यम से होता है। बेशक, केवल एक प्रक्रिया बंदरगाह से बंधी जा सकती है, ऐसा लगता है कि वहां एक मास्टर/वर्कर पैटर्न होना चाहिए जिसमें मास्टर फोर्क बच्चों को आने वाले बंदरगाह से बांधता है, और आने वाले कनेक्शन (और वास्तविक प्रसंस्करण कार्य) को बच्चों को सौंपता है । (शायद भूखे उपभोक्ता पैटर्न के माध्यम से?)

क्या यह वेब सर्वर को node.js चलाने का सबसे अच्छा तरीका है? यदि हां, क्या मास्टर/वर्कर पैटर्न को सरल बनाने के लिए पुस्तकालय हैं? यदि नहीं, तो समर्पित मशीन के पूरे संसाधनों का सबसे अच्छा उपयोग करने के लिए कौन से पैटर्न या तैनाती सेटअप की सिफारिश की जाती है?

(ServerFault के लिए यह एक बेहतर सवाल है?)

उत्तर

6

Multi-node एक पुस्तकालय है कि मास्टर/कार्यकर्ता पैटर्न प्रदान करता है।

यदि सर्वर प्रक्रियाओं को एक-दूसरे से बात करने में सक्षम होने की आवश्यकता नहीं है, और आप Socket.IO का उपयोग नहीं कर रहे हैं, तो एक साधारण विकल्प केवल एक प्रक्रिया/कोर शुरू करना होगा, स्थानीय बंदरगाहों से बांधना होगा, और कुछ उपयोग करना होगा nginx या HAProxy जैसे उनके बीच संतुलन लोड करने के लिए।

+1

['क्लस्टर'] (http://learnboost.github.com/cluster/) भी लोकप्रिय है – Raynos

2

आप एक्सप्रेस का उपयोग कर रहे हैं, मैं टीजे के क्लस्टर का उपयोग करेंगे: http://learnboost.github.com/cluster/

यह 'पारदर्शी' सीपीयू आधारित लोड संतुलन, जो अच्छा है, क्योंकि आप अपने मौजूदा एक्सप्रेस एप्लिकेशन का उपयोग कर सकते हैं प्रदान करता है, और यह के पार मापता है अपेक्षाकृत दर्द रहित ढंग से कोर।

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