मैं चिपचिपा और गैर-चिपचिपा सत्रों के बीच अंतर जानना चाहता हूं। इंटरनेट से पढ़ने के बाद मुझे क्या समझ में आया:
स्टिकी : केवल एकल सत्र वस्तु होगी।
गैर-चिपचिपा सत्र : प्रत्येक सर्वर नोड के लिए सत्र ऑब्जेक्ट
मैं चिपचिपा और गैर-चिपचिपा सत्रों के बीच अंतर जानना चाहता हूं। इंटरनेट से पढ़ने के बाद मुझे क्या समझ में आया:
स्टिकी : केवल एकल सत्र वस्तु होगी।
गैर-चिपचिपा सत्र : प्रत्येक सर्वर नोड के लिए सत्र ऑब्जेक्ट
जवाबों:
जब आपकी वेबसाइट को केवल एक वेब सर्वर द्वारा सेवा दी जाती है, तो प्रत्येक क्लाइंट-सर्वर जोड़ी के लिए, एक सत्र ऑब्जेक्ट बनाया जाता है और वेब सर्वर की मेमोरी में रहता है। क्लाइंट से सभी अनुरोध इस वेब सर्वर पर जाते हैं और इस सत्र ऑब्जेक्ट को अपडेट करते हैं। यदि कुछ डेटा को इंटरेक्शन की अवधि में सत्र ऑब्जेक्ट में संग्रहीत करने की आवश्यकता होती है, तो यह इस सत्र ऑब्जेक्ट में संग्रहीत होता है और जब तक सत्र मौजूद रहता है, तब तक रहता है।
हालाँकि, यदि आपकी वेबसाइट पर कई वेब सर्वर हैं, जो लोड बैलेंसर के पीछे बैठते हैं, तो लोड बैलेंसर तय करता है कि कौन सा वास्तविक (भौतिक) वेब-सर्वर प्रत्येक अनुरोध पर जाए। उदाहरण के लिए, यदि लोड बैलेंसर के पीछे 3 वेब सर्वर A, B और C हैं, तो यह संभव है कि www.mywebsite.com/index.jsp को सर्वर A, www.mywebsite.com/login.jsp से सेवा दी जाए। सर्वर B और www.mywebsite.com/accoutdetails.php को सर्वर C से सेवा दी जाती है।
अब, यदि अनुरोधों को (भौतिक रूप से) 3 अलग-अलग सर्वरों से परोसा जा रहा है, तो प्रत्येक सर्वर ने आपके लिए एक सत्र ऑब्जेक्ट बनाया है और क्योंकि ये सत्र ऑब्जेक्ट तीन स्वतंत्र बॉक्स पर बैठते हैं, सत्र वस्तु में कोई जानने का कोई सीधा तरीका नहीं है। दूसरे का। इन सर्वर सत्रों के बीच सिंक्रनाइज़ करने के लिए, आपको सत्र डेटा को एक परत में लिखना / पढ़ना पड़ सकता है, जो सभी के लिए सामान्य है - जैसे डीबी। अब इस उपयोग-मामले के लिए db से / को डेटा लिखना और पढ़ना एक अच्छा विचार नहीं हो सकता है। अब, यहाँ चिपचिपा-सत्र की भूमिका आती है ।
यदि लोड बैलेंसर को चिपचिपा सत्रों का उपयोग करने का निर्देश दिया जाता है, तो आपके सभी इंटरैक्शन एक ही भौतिक सर्वर के साथ होंगे, भले ही अन्य सर्वर मौजूद हों। इस प्रकार, इस वेबसाइट के साथ आपकी संपूर्ण बातचीत में आपकी सत्र वस्तु समान होगी।
संक्षेप में, स्टिकी सत्रों के मामले में, आपके सभी अनुरोधों को उसी भौतिक वेब सर्वर को निर्देशित किया जाएगा, जबकि गैर-स्टिकी लोडबलर के मामले में आपके अनुरोधों को पूरा करने के लिए कोई भी वेबसर्वर चुन सकता है।
एक उदाहरण के रूप में, आप अमेज़न के इलास्टिक लोड बैलेंसर और चिपचिपे सत्रों के बारे में यहाँ पढ़ सकते हैं: http://aws.typepad.com/aws/2010/04/new-elastic-load-balancing-feature-sticky-session.html
मैंने यहां कुछ और विवरणों के साथ एक उत्तर दिया है: https://stackoverflow.com/a/11045462/592477
या आप इसे वहां पढ़ सकते हैं ==>
जब आप लोडबैलेंसिंग का उपयोग करते हैं तो इसका मतलब है कि आपके पास टॉमकैट के कई उदाहरण हैं और आपको लोड को विभाजित करने की आवश्यकता है।