2012-01-18 14 views
15

मैं यह निर्धारित करने की कोशिश कर रहा हूं कि संतुलन टीसीपी यातायात कैसे लोड करें। मैं समझता हूं कि HTTP लोड संतुलन कैसे काम करता है क्योंकि यह एक साधारण अनुरोध/प्रतिक्रिया वास्तुकला है। हालांकि, मुझे यकीन है कि जब आप अपने सर्वर अन्य क्लाइंट को डेटा लिखने की कोशिश कर रहे हैं तो आप संतुलन टीसीपी यातायात कैसे लोड करते हैं। मैंने एक साधारण टीसीपी चैट सर्वर के लिए काम प्रवाह की एक छवि संलग्न की है जहां हम एन अनुप्रयोग सर्वरों में यातायात को संतुलित करना चाहते हैं। क्या वहां कोई लोड बैलेंसर्स हैं जो मैं कर सकता हूं जो कर रहा हूं, या क्या मुझे एक अलग विषय की खोज करने की ज़रूरत है? धन्यवाद।आप संतुलन टीसीपी यातायात कैसे लोड करते हैं?

enter image description here

+1

आपके द्वारा पेश किए गए समांतर लेआउट में लोड-संतुलित, आपके द्वारा देखी गई कुछ समस्याएं हैं। उदाहरण के लिए आईआरसी लें, जिसमें एक पेड़ लेआउट है (यह सिंक्रनाइज़ेशन में सहायक है और सभी को संदेश वितरण को सरल बनाता है), और पेड़ पर जा रहा डेटा द्रव्यमान इतना नहीं है, उदाहरण के अनुसार अपने लगभग 80k उपयोगकर्ताओं के बावजूद freenode ops। –

उत्तर

14

सबसे पहले, अपने चित्र मानता है कि लोड संतुलन एक (टीसीपी) के रूप में प्रॉक्सी है, जो हमेशा ऐसा नहीं होता काम कर रहा है। अक्सर डायरेक्ट रूटिंग (या डायरेक्ट सर्वर रिटर्न) का उपयोग किया जाता है, या गंतव्य एनएटी किया जाता है। दोनों मामलों में बैकएंड सर्वर और क्लाइंट के बीच कनेक्शन प्रत्यक्ष है। तो इस मामले में यह अनिवार्य रूप से टीसीपी हैंडशेक है जो बैकएंड सर्वर के बीच वितरित किया जाता है। अधिक जानकारी के लिए निम्न देखें:

जाहिर टीसीपी प्रॉक्सी मौजूद हैं (HAProxy एक होने) है, जो मामले में प्रॉक्सी connecton के दोनों ओर है, तो अपने अनुप्रयोग का प्रबंधन करता है आने वाले आईपी/पोर्ट (जो ग्राहक के बजाय प्रॉक्सी से होता है) द्वारा ग्राहक की पहचान करने में सक्षम होना चाहिए। प्रॉक्सी संदेश को क्लाइंट को वापस ले जाने में संभाल लेगा।

किसी भी तरह से, यह एप्लिकेशन डिज़ाइन पर आता है क्योंकि मुझे लगता है कि मुश्किल बिट में एक सामान्य सत्र स्टोर (किसी प्रकार का डेटाबेस, या कुंजी => वैल्यू स्टोर जैसे रेडिस) होता है, ताकि जब आपका ऐप सर्वर हो कहता है, "मुझे फ्रैंक को एक संदेश भेजने की ज़रूरत है" यह निर्धारित कर सकता है कि कौन सा बैकएंड सर्वर फ्रैंक (डीबी से) से जुड़ा हुआ है, और संकेत देता है कि सर्वर इसे संदेश भेजने के लिए संकेत देता है। आप कनेक्शन की समस्या को कम करते हैं (उसी क्लाइंट से) लगातार बैकएंड सर्वरों के आसपास लगातार कनेक्शन (सभी लोड बैलेंसर्स यह कर सकते हैं), या किसी वेबसाईट की तरह आंतरिक रूप से लगातार उपयोग करके।

यह शायद एक विशाल oversimplification है क्योंकि मुझे चैट सॉफ्टवेयर के साथ कोई अनुभव नहीं है। जाहिर है कि डीबी सर्वर स्वयं को कई मशीनों के बीच वितरित किया जा सकता है, गलती सहनशीलता और लोड संतुलन के लिए।

+0

सूचनात्मक उत्तर के लिए धन्यवाद। मुझे और समझने के लिए उन विषयों को देखना होगा। लोड संतुलन के बारे में अधिक जानने के लिए क्या आप किसी भी अच्छे संसाधन के बारे में जानते हैं? धन्यवाद! –

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