2009-05-14 12 views
6

मेरे पास एनएलबी का उपयोग कर दो आईआईएस सर्वर चल रहे हैं। दुर्भाग्य से मैं साझा सत्र सर्वर का उपयोग नहीं कर सकता, इसलिए हर सर्वर अपने सत्र का उपयोग कर रहा है। मैं कैसे सुनिश्चित कर सकता हूं कि एक ही उपयोगकर्ता के सभी अनुरोध एक ही आईआईएस सर्वर पर अग्रेषित किए गए हैं?आईआईएस एनएलबी का उपयोग करते समय उसी सर्वर पर उपयोगकर्ता अनुरोध कैसे रखें?

उत्तर

3

मुझे लगता है कि आप जो खोज रहे हैं वह स्टिकी सत्र है। चिपचिपा सत्र आपके लोड बैलेंसर द्वारा लागू किए जाते हैं हालांकि। आपको शायद बाहरी लोड बैलेंसर (बिग-आईपी, हैप्रोक्सी, इत्यादि) स्थापित करने की आवश्यकता है जो चिपचिपा सत्र कर सकते हैं।

+0

मुझे लगता है कि एनएलबी क्लस्टर को फिर से कॉन्फ़िगर करके बाहरी लोड बैलेंसर के बिना यह संभव है। यह भी प्रॉक्सी के साथ एओएल उपयोगकर्ताओं के लिए काम करना चाहिए (अगर उन अभी भी मौजूद हैं ;-)) – Christian

+2

मैं हाल ही में मेल में किसी भी एओएल डिस्क नहीं मिला है, आपके पास? – Min

+0

यूथस द्वारा अन्य टिप्पणियों को देखते हुए, मुझे लगता है कि यह जाने का एकमात्र तरीका है। – NotMe

0

आप ऐसा क्यों करना चाहते हैं? यदि यह सत्र स्थिति के कारण है तो आपके पास एक सामान्य स्थान पर एक डेटाबेस या आउट-ऑफ-प्रोसेस सर्वर स्थापित होना चाहिए और सभी नोड्स संदर्भित करें।

+0

अलग सर्वर करवाने के लिए, के रूप में मैं जानता हूँ कि, मैं वस्तुओं, उस सत्र में जमा हो जाती है serializable रूप में चिह्नित करने के लिए की जरूरत है। मैं अभी यह नहीं कर सकता, क्योंकि मैं विरासत प्रणाली को एनएलबी वास्तुकला में ले जा रहा हूं। – Sergejus

0

मैं एक रिवर्स प्रॉक्सी पर विचार करता हूं जो किसी भी सर्वर के सामने बैठता है और याद करता है कि कौन से बाहरी उपयोगकर्ता सर्वर का उपयोग कर रहे हैं।

मुझे पता है (इस तरह से इसका उपयोग करने से) Cherokee आईपीएचश प्रॉक्सीइंग का समर्थन करता है लेकिन मुझे यकीन है कि बहुत कुछ हैं।

+0

मैं जोड़ूंगा: यह आपके अंतर्निहित लोड-बैलेंसिंग को प्रतिस्थापित करेगा। – Oli

+0

लेकिन क्या आईआईएस में यह कार्यक्षमता है? – Sergejus

+0

शायद ... इस पढ़ें: http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/77cb4318-75f8-4310-a05f-3605b5768007.mspx?mfr=true – Oli

0

लॉयड के उत्तर में जोड़ने के लिए, आपको किसी भी संतुलित संतुलित वातावरण में सत्र का उपयोग करने से बचना चाहिए। सत्र का उपयोग करने के पीछे पूरा उद्देश्य डेटाबेस कॉल से बचने के लिए है; यदि आप सत्र डेटा को डेटाबेस में वापस संग्रहीत करते हैं तो आपको आमतौर पर कुछ भी नहीं मिलता है।

कारण यह है कि 1. अब आपको प्रत्येक पृष्ठ लोड (पुनर्प्राप्ति और स्टोर) और 2 के लिए 2 डेटाबेस कॉल करना होगा। डेटा को अब क्रमबद्धता/deserialization सीमाओं के माध्यम से जाना है। अधिकांश समय यह उस डेटा को पुनः प्राप्त करने के बजाय एक अधिक महंगा संचालन होता है जिसे आप शुरू करना चाहते थे।

अब, आपके वास्तविक प्रश्न के लिए। आपके पास दृश्य स्थिति में सत्र डेटा स्टोर करने का विकल्प है। वैकल्पिक रूप से, आप सत्र से गुजर सकते हैं और इसके बजाय कुकीज़ का उपयोग कर सकते हैं। यदि आप इस मार्ग पर जाते हैं, तो उन्हें प्राप्त करते समय उन्हें बाहर निकलने और डिक्रिप्ट करने के लिए सुनिश्चित करें।

+0

मैं डेटाबेस मुद्दे पर सहमत , हम 'सत्र' जानकारी संग्रहीत करने के लिए MemCached का उपयोग करते हैं क्योंकि हम डेटाबेस के साथ बातचीत को हटाना चाहते हैं और जानकारी देने पर MemCached बहुत तेज़ है। – Lloyd

+0

मैं देख रहा हूं कि आप क्या कह रहे हैं, लेकिन मेरे मामले में मेरे पास विरासत प्रणाली है जिसे मैं स्पर्श नहीं कर सकता। तो अब मुझे एनएलबी पेश करने का सबसे उचित तरीका पता होना चाहिए। – Sergejus

+0

लोड संतुलित वातावरण सत्र स्मृति के अनुकूल होना चाहिए, इसके विपरीत नहीं। – Karlth

1

आप ऐसा कर सकते हैं अपने ग्राहकों में से कोई भी रूप में आसानी से जब तक एक वितरित प्रॉक्सी प्रणाली का उपयोग करें:

NLB क्लस्टर के protieries में, टैब "बंदरगाह नियम" आप "को छानने मोड" और आत्मीयता चयन कर सकते हैं : आप "कोई नहीं" चुन सकते हैं क्योंकि आपके पास केंद्रीय सत्र नहीं हैं। लेकिन "सरल" प्रत्येक उपयोगकर्ता को उसी सर्वर पर रीडायरेक्ट करेगा जब तक कि आईपी वही रहता है। यदि आप उदा। एंटीसीएपेट एओएल प्रॉक्सी सर्वर तब "क्लास सी" एक सुरक्षित विकल्प हो सकता है (यद्यपि शायद लोड संतुलन को थोड़ा कम करना), क्योंकि एक ही कक्षा सी नेट एक ही सर्वर पर जाता है।

मुझे लगता है कि एमएस द्वारा आसानी से कार्यान्वित किया जाता है कि दोनों मेजबान जानते हैं कि कौन सी आईपी आईपी है या अजीब है या कक्षा सी नेट का तीन गुना भी अजीब है और आईपी के आधार पर लोड को हमेशा वितरित करता है -address

15

इस मिले और दूसरों के साथ साझा करने का फैसला किया:

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

+1

फिर इस स्वीकार किए जाते हैं जवाब – Christian

+0

कृपया मैं केवल 48 घंटे के बाद यह करने के लिए सक्षम हो जाएगा ... – Sergejus

+0

संयोग से, यह एक ही अवधारणा के रूप में चिपचिपा सत्र है। – NotMe

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