2012-07-01 12 views
7

मैंने एक नोडज एप्लिकेशन बनाया है जो एक कोर में ठीक काम करता है। यह एप्लिकेशन प्रकाश & तेज संचार के लिए socket.io का उपयोग करता है।बहु-कोर सर्वर में क्लस्टर के साथ socket.io का उपयोग करने का अच्छा तरीका?

अब, मैं अपने आवेदन को लंबवत रूप से स्केल करना चाहता हूं, इसे cluster मॉड्यूल में नोडजेज़ में मॉड्यूल का उपयोग करके इसे सक्षम करना चाहता हूं।

मेरे आवेदन में सब कुछ रेडिस में डेटा स्टोर करता है, इसलिए, कुछ बुनियादी डेटा & सत्रों से निपटने में कोई समस्या नहीं है।

हालांकि, जब मैं क्लस्टर का उपयोग करके कई कार्यकर्ता प्रक्रियाओं को जन्म देता हूं, ऐसा लगता है कि प्रत्येक कार्यकर्ता का अपना सॉकेट हैंडलिंग होता है।

उदाहरण के लिए, मान लें कि 'अतिथि' कमरा नामक एक चैट रूम है।

उपयोगकर्ता ए और उपयोगकर्ता बी कमरे से जुड़ता है, और वे विभिन्न कार्यकर्ता प्रक्रिया में वितरित किए जाते हैं।

चूंकि वे विभिन्न प्रक्रियाओं में हैं और ये प्रक्रियाएं सॉकेट श्रोता साझा नहीं करती हैं, तो उपयोगकर्ता ए और उपयोगकर्ता बी के साथ एक-दूसरे से बात करने का कोई तरीका नहीं है।

इस समस्या को हल करने के लिए एक अच्छा तरीका क्या है? क्या socket.io बहु-कोर सिस्टम का समर्थन करता है?

क्या एकल कोर उपयोग के लिए socket.io है?

+3

आप/सर्वर प्रक्रियाओं पर स्केलिंग के लिए 'RedisStore' साथ socket.io चला सकते हैं। अधिक गहराई के लिए [मेरा पिछला उत्तर] देखें (http://stackoverflow.com/questions/9267292/examples-in-using-redisstore-in-socket-io/9275798#9275798)। –

उत्तर

3

आप सामान्य के रूप में socket.io का उपयोग कर सकते हैं लेकिन पृष्ठभूमि में एक रेडिस स्टोर के साथ। यह किसी बाहरी पुस्तकालय के बिना socket.io पर कई उदाहरणों का भी समर्थन करेगा। यह कई मामलों में कमरे का भी समर्थन करता है। कैसे redis साथ socket.io स्थापित करने के लिए करने के लिए

लिंक: Using Multiples Nodes/Processes with socket.io

+0

मुझे लगता है कि लिंक वास्तव में उस स्थान पर इंगित नहीं करता है जिसे आपने सोचा था। – funerr

+0

मुझे भी लगता है। मुझे इसे संपादित करने दें। –

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