2009-01-28 11 views
5

परिदृश्य:ASP.NET सत्र स्थिति सर्वर की स्केलिंग

वेबसाइट प्रत्येक पर IIS का उपयोग कर तीन सर्वरों पर होस्ट कर रहा है।

तीनों सर्वर Windows Server 2003.

सभी तीन साइटों एक अलग सर्वर है कि एक "स्थिति सर्वर" के रूप में नामित किया गया है पर सत्र स्थिति स्टोर करने के लिए कॉन्फ़िगर किया गया है के साथ आता है नेटवर्क लोड सॉफ्टवेयर संतुलन का उपयोग कर समूह है ।

मुझे "राज्य सर्वर" को स्केल करने के लिए कहा गया है। क्या कोई तरीका है कि मेरे पास एक से अधिक राज्य सर्वर हो सकते हैं और उनके बीच स्थिति सिंक्रनाइज़ कर सकते हैं, इसलिए यदि राज्य सर्वर में से कोई एक नीचे चला जाता है तो अन्य लोग राज्य की जानकारी प्रदान कर पाएंगे?

उत्तर

6

मैं memcached के लिए जाना होगा। आप इसे प्रत्येक वेब सर्वर पर सेट कर सकते हैं और फिर आप इसे जोड़ते हुए प्रत्येक नए वेब सर्वर के साथ स्केल कर सकते हैं। मुझे कोडप्लेक्स पर पहले कुछ क्लाइंट मिले हैं।

+0

मेमकैच वास्तव में सर्वर फार्म में नोड्स को सिंक में रखेगा? विफलता के एकल बिंदु को रोकने के लिए, उन्हें सिंक में रहना होगा, ताकि जब आइटम जोड़े या हटा दिए जाएं, तो सभी नोड्स अधिसूचित हो जाएंगे। – baretta

+0

हां, memcached में डी वितरित करने के लिए खड़ा है, इसलिए यह आपके क्लस्टर में सभी नोड्स में जानकारी को सिंक करता है। – Nick

+0

आह! तो फिर, एएसपी.नेट स्टेट सर्वर मेमकैच के साथ अंतर-परिवर्तनीय है! http://stackoverflow.com/questions/290966/is-memcached-interchangeable-with-asp-net-state-server मुझे डर था कि मेमकैड नोड्स को सिंक में नहीं रखेगा .. – baretta

8

हम जहां काम करते हैं, इसके लिए हम Scale Out State Server का उपयोग करते हैं, और यह काम अद्भुत ढंग से करता है और सेट अप करने के लिए आसान है। मैं समझता हूं कि माइक्रोसॉफ्ट Velocity नामक एक समान उत्पाद पर भी काम कर रहा है, लेकिन मुझे इसके साथ कोई अनुभव नहीं है।

एसओएसएस का एकमात्र नकारात्मक पक्ष यह है कि आपको इसके लिए भुगतान करना होगा - लेकिन मेरे पास उनकी बिक्री और समर्थन टीम के साथ बातचीत करने के महान अनुभव नहीं हैं। यदि आप लाइसेंसिंग समाप्त करते हैं, तो मुझे एक एहसान दें और उन्हें बताएं कि ग्रेटिस से डैनियल ने आपको भेजा है;)

3

आप एक वितरित कैशिंग तकनीक की तलाश में हैं। माइक्रोसॉफ्ट वेग एक ऐसा है जिसमें माइक्रोसॉफ्ट द्वारा डिफॉल्ट एएसपी.NET सत्र स्थिति को बदलने के लिए माइक्रोसॉफ्ट द्वारा पोस्ट किए गए उदाहरण हैं जिन्हें वितरित किया जा सकता है। Memcache जैसे अन्य कैशिंग प्रदाता हैं।

संपादित करें: इस उत्तर को वर्तमान समय के लिए अधिक प्रासंगिक जानकारी के लिए अपडेट करना, इस प्रकार की कार्यक्षमता ऐपफैब्रिक उत्पाद के साथ विंडोज एज़ूर में बनाई गई है। इसके बारे में कुछ संक्षिप्त जानकारी यहां देखी जा सकती है: Windows Server and Azure AppFabric virtual launch May 20th

+0

पढ़ वेग के साथ समस्या यह है कि है आधिकारिक तौर पर जारी की गई कभी नहीं किया है। अब साल हो चुके हैं और हमारे पास सीटीपी है। मैं सोच रहा हूं कि आप एमएस से किस समर्थन की उम्मीद कर सकते हैं? इसके अलावा वेग टीम ब्लॉग काफी समय से काफी सुंदर रहा है और इससे मुझे आश्चर्य होता है कि अगर एमएस एक दूर-दूर के भविष्य में परियोजना को मारने वाला नहीं है। –

+0

@ पियोटर वेग एपफैब्रिक का अग्रदूत था जो कि एज़ूर टेक्नोलॉजी लाइन अप का हिस्सा है, उद्धरण: http://www.hanselman.com/blog/WindowsServerAndAzureAppFabricVirtualLaunchMay20th.aspx मैंने अपडेट के लिए धन्यवाद –

+0

शामिल करने के लिए अपना उत्तर अपडेट किया, मैं सही खड़े हो जाओ :) –

0

SQL सर्वर पर सत्र डेटाबेस आसानी से छोटे कोड & कॉन्फ़िगरेशन परिवर्तनों के साथ स्केल किया जा सकता है। आप एएसपीनेट सत्र को सत्र डेटाबेस में चिपका सकते हैं और चाहे आपके फार्म में कौन सा वेब सर्वर अनुरोध करता है, आपका सत्र-आईडी आधारित एसक्यूएल स्टेट सर्वर मानचित्रण दोषपूर्ण काम करता है। एसक्यूएल सर्वर का उपयोग कर एएसपी.NET सत्र स्थिति को स्केल करने के लिए शायद यह सबसे अच्छा तरीका है। अधिक जानकारी के लिए लिंक

True Scaleout model for session state

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