मेरे पास एक सवाल है कि बैलेंस वेब सॉकेट को कैसे लोड किया जाए।
मेरे पास एक सर्वर है जो वेब सॉकेट का समर्थन करता है। ब्राउज़र मेरी साइट से जुड़ते हैं और हर एक वेब सॉकेट खोलता है www.mydomain.com
। इस तरह, मेरा सोशल नेटवर्क ऐप ग्राहकों को संदेश भेज सकता है।
परंपरागत रूप से, केवल HTTP अनुरोधों का उपयोग करते हुए, मैं दो वेब सर्वरों के सामने एक दूसरा सर्वर और एक लोड बैलेंसर जोड़कर स्केल करूंगा।
वेब सॉकेट्स के साथ, कनेक्शन को सीधे वेब सर्वर के साथ होना चाहिए, न कि लोड बैलेंसरों के साथ, क्योंकि अगर किसी मशीन में 64k ओपन पोर्ट्स की एक भौतिक सीमा होती है, और क्लाइंट लोड बैलेंसर से जुड़ रहे थे, तो मैं समर्थन नहीं कर सकता था 64k से अधिक समवर्ती उपयोगकर्ता।
तो मैं कैसे -
पेज लोड होने पर क्लाइंट को सीधे वेब सर्वर (लोड बैलेंसर के बजाय) से कनेक्ट करने के लिए मिलता है? क्या मैं केवल जावास्क्रिप्ट को एक नोड से लोड करता हूं, और लोड बैलेंसर्स (या जो भी) स्क्रिप्ट के लिए URL को यादृच्छिक रूप से संशोधित करता है, हर बार जब पृष्ठ शुरू में अनुरोध किया जाता है?
एक लहर शुरू संभाल? ब्राउज़र ध्यान देगा कि कनेक्शन बंद हो गया है क्योंकि वेब सर्वर बंद हो गया है। मैं कनेक्शन को फिर से खोलने के प्रयास के लिए जावास्क्रिप्ट कोड लिख सकता हूं, लेकिन नोड थोड़ी देर के लिए चला जाएगा। इसलिए मुझे लगता है कि मुझे अगले नोड के पते का उपयोग करने के लिए लोड बैलेंसर पर वापस जाना होगा?
मैंने शुरुआती अनुरोध पर रीडायरेक्ट भेजने वाले लोड बैलेन्सर के बारे में आश्चर्य किया, ताकि ब्राउज़र शुरू में अनुरोध करे
www.mydomain.com
और फिर से अप्रत्यक्ष हो जाएwww34.mydomain.com
। यह बहुत अच्छा काम करता है, जब तक कि नोड नीचे नहीं जाता है - और फेसबुक जैसी साइटें ऐसा नहीं करती हैं। वह यह कैसे करते हैं?