2013-06-03 21 views
7

टॉरनाडो websocket चैट उदाहरण में, प्रतिभागियों को सेट (link) में संग्रहीत किया जाता है, यह एक सर्वर के मामले में सुविधाजनक है। लेकिन यदि लोड बैलेंसर के रूप में एप्लिकेशन और nginx के कई उदाहरण चलाते हैं, तो इस मामले में, प्रतिभागियों को स्टोर करने के लिए बेहतर कैसे है?टॉरनाडो websocket चैट की स्केलेबिलिटी

+0

मैं कहूंगा कि यदि आप कई उदाहरण चलाते हैं तो कोई फर्क नहीं पड़ता। अंत में प्रत्येक इंस्टेंस में इसका अपना सेट होगा()। यदि आप उदाहरण के बीच उपयोगकर्ताओं को स्विच करने के लिए लोड बैलेंसर के बारे में चिंता करते हैं, तो मुझे नहीं लगता कि चैट के दौरान काम करेगा लेकिन मैं गलत हो सकता हूं। मैं उन सभी उपयोगकर्ताओं की एक ही सूची का उपयोग करने के लिए सभी उदाहरण नहीं चाहता हूं जिन्हें आप एक छोटे डीबी या एक कुंजी-मूल्य स्टोर पर विचार कर सकते हैं। – pypat

+0

जैसा कि मैं इसे समझता हूं, प्रत्येक उदाहरण केवल उनके प्रतिभागियों के साथ कनेक्शन रखेगा, अलग-अलग उदाहरणों में उपयोगकर्ताओं की एक अलग सूची होगी। लेकिन चैट में नए संदेशों के बारे में अन्य उदाहरण कैसे अधिसूचित किया जाएगा? वह – saniaxxx26

+0

चूंकि 'सेट' केवल एक पायथन उदाहरण से संबंधित है और अन्य उदाहरणों तक इसका उपयोग नहीं किया जा सकता है, आपको बनाना होगा, जैसे @pypat उल्लेख, एक आम, और तेज़ कुंजी-मूल्य स्टोर जिसे सभी उदाहरणों से एक्सेस किया जा सकता है (जैसे मेमकैच , रेडिस इत्यादि)। अद्यतन विधि के सभी उदाहरणों को सूचित करने के लिए रेडिस पब/सब सिस्टम का उपयोग करना एक तरीका है। उम्मीद है कि नीचे मेरा जवाब थोड़ा सा मदद करता है। –

उत्तर

4

आप रेडिस की pubsub सुविधा का उपयोग करने पर विचार कर सकते हैं। (link)

संपादित करें:

जब अपने ग्राहकों को अपनी चैटरूम पर लॉग ऑन, वे कर सकते हैं subscribe ने चैनल के लिए, chatroom का कहना है। इससे कोई फर्क नहीं पड़ता कि वे किस टर्ननाडो उदाहरण का उपयोग कर रहे हैं। this module का उपयोग करके आप चैनल को अतुल्यकालिक रूप से सुन सकते हैं।

यदि कोई अन्य ग्राहक आपके चैट रूम में संदेश भेजता है (जो चैनल chatroom चैनल को एक संदेश प्रकाशित करता है), तो सभी टर्ननाडो इंस्टेंस स्वचालित रूप से संदेशों को भेजे जाते हैं जो चैनल की सदस्यता लेते हैं। फिर आप वेबस्केट के माध्यम से संदेश भेज सकते हैं।

उदाहरण के लिए आप इस demo पर एक नज़र डाल सकते हैं।

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