क्लस्टर पर्यावरण में सिंगलटन ऑब्जेक्ट को दोबारा करने की सबसे अच्छी रणनीति क्या है?सिंगलटन
हम डेटाबेस से कुछ कस्टम जानकारी कैश करने के लिए सिंगलटन का उपयोग करते हैं। इसका अधिकतर केवल पढ़ने के लिए है, लेकिन कुछ विशेष घटना होने पर ताज़ा हो जाता है।
अब हमारे आवेदन को क्लस्टर पर्यावरण में तैनात करने की आवश्यकता है। परिभाषा के अनुसार, प्रत्येक जेवीएम का अपना सिंगलटन उदाहरण होगा। तो कैश जेवीएम के बीच सिंक हो सकता है जब एक नोड पर एक ताज़ा घटना होती है और उसके कैश को ताज़ा किया जाता है।
कैश को सिंक में रखने का सबसे अच्छा तरीका क्या है?
धन्यवाद।
संपादित करें: कैश मुख्य रूप से यूआई के लिए एक स्वत: पूर्ण सूची (प्रदर्शन के कारणों) प्रदान करने के लिए प्रयोग किया जाता है और हम Websphere का उपयोग करें। तो किसी भी वेबस्पेयर संबंधित सुझावों का स्वागत है।
क्या आप 2 पर विस्तृत कर सकते हैं? आपका मतलब जेएमएस पब/सबस्क्राइब मॉडल है? – lud0h
हां समाधान 2 अनिवार्य रूप से व्यक्तिगत कैश उदाहरणों में परिवर्तनों को प्रसारित करने के लिए एक पब/उप तंत्र का उपयोग करने का एक तरीका है। आपको प्रत्येक कैश द्वारा सब्सक्राइब किए गए एप्लिकेशन सर्वर पर चलने वाला एक जेएमएस विषय बनाना होगा। जब वह डेटा बदलता है तो संदेश को विषय पर प्रकाशित करने की आवश्यकता होगी। तब प्रत्येक ग्राहक को यह संदेश प्राप्त होगा और तदनुसार स्थानीय कैश अपडेट करेगा। – pjp
यदि आपका डेटा बहुत बार नहीं बदलता है तो मैं विकल्प 1 के लिए जाऊंगा। मैंने रीफ्रेशिंग संदर्भ डेटा के लिए इस दृष्टिकोण का उपयोग करके कई प्रणालियों पर काम किया है। मेरा मानना है कि हम हर 30 मिनट के आसपास कैश को रीफ्रेश करते थे। आपके द्वारा चुनी गई ताज़ा अवधि स्पष्ट रूप से इस बात पर आधारित होगी कि आपका संदर्भ डेटा कैसे उपयोग किया जा रहा है। – pjp