Apigee Edge का दस्तावेज़ देखा जा रहा है.
Apigee X के दस्तावेज़ पर जाएं. जानकारी
इस विषय में, कैश मेमोरी के काम करने के तरीके के बारे में बताया गया है. जैसे, कैश मेमोरी में जानकारी भरने की नीति, LookupCache नीति, InvalidateCache नीति, और Response Cache नीति.
शेयर किए गए और एनवायरमेंट कैश मेमोरी
कैश मेमोरी से जुड़ी हर नीति को कॉन्फ़िगर करने पर, कैश मेमोरी के दो टाइप में से किसी एक का इस्तेमाल किया जा सकता है: शामिल किया गया शेयर किया गया कैश मेमोरी, जिसके ऐक्सेस आपके ऐप्लिकेशन के पास होता है और एक या उससे ज़्यादा ऐसे कैश मेमोरी जिनका दायरा, आपके बनाए गए एनवायरमेंट तक सीमित होता है.
-
शेयर किया गया कैश मेमोरी: डिफ़ॉल्ट रूप से, आपके प्रॉक्सी के पास हर एनवायरमेंट में एक शेयर किया गया कैश मेमोरी होता है. शेयर की गई कैश मेमोरी, इस्तेमाल के बुनियादी उदाहरणों के लिए अच्छी तरह से काम करती है.
शेयर किए गए कैश मेमोरी का इस्तेमाल, सिर्फ़ कैश मेमोरी से जुड़ी नीतियों का इस्तेमाल करके किया जा सकता है, न कि मैनेजमेंट एपीआई का इस्तेमाल करके. कैश मेमोरी से जुड़ी नीति में शेयर किए गए कैश मेमोरी का इस्तेमाल करने के लिए, नीति के
<CacheResource>
एलिमेंट को हटाएं. -
एनवायरमेंट कैश मेमोरी: जब आपको अपनी चुनी गई वैल्यू के साथ कैश मेमोरी प्रॉपर्टी कॉन्फ़िगर करनी हो, तो एनवायरमेंट के स्कोप वाली कैश मेमोरी बनाई जा सकती है. कैश मेमोरी बनाने के बारे में ज़्यादा जानने के लिए, एनवायरमेंट कैश मेमोरी बनाना और उसमें बदलाव करना लेख पढ़ें.
एनवायरमेंट कैश बनाने पर, उसकी डिफ़ॉल्ट प्रॉपर्टी कॉन्फ़िगर की जाती हैं. कैश मेमोरी से जुड़ी नीति में, कैश मेमोरी का नाम बताकर, नीति के
<CacheResource>
एलिमेंट में, एनवायरमेंट कैश मेमोरी का इस्तेमाल किया जा सकता है.
कैश मेमोरी में सेव किए गए डेटा को एन्क्रिप्ट (सुरक्षित) करने के बारे में जानकारी
सार्वजनिक क्लाउड के लिए Edge: कैश मेमोरी को सिर्फ़ उन संगठनों में एन्क्रिप्ट किया जाता है जिनमें पीसीआई और हिपा की सुविधा चालू है. संगठन को उपलब्ध कराने के दौरान, उन संगठनों के लिए एन्क्रिप्शन कॉन्फ़िगर किया जाता है.
इन-मेमोरी और पर्सिस्टेंट कैश लेवल
शेयर किए गए और एनवायरमेंट कैश, दोनों दो लेवल वाले सिस्टम पर काम करते हैं. यह सिस्टम, इन-मेमोरी लेवल और पर्सिस्टेंट लेवल से बना होता है. नीतियां, एक साथ काम करने वाले फ़्रेमवर्क के तौर पर, दोनों लेवल के साथ इंटरैक्ट करती हैं. Edge, लेवल के बीच के संबंध को मैनेज करता है.
-
तेज़ी से ऐक्सेस करने के लिए, पहला लेवल, इन-मेमोरी कैश (L1) होता है. अनुरोधों का तेज़ी से जवाब देने के लिए, हर मैसेज प्रोसेसिंग नोड (एमपी) के पास अपनी मेमोरी कैश (Ehcache से लागू किया गया) होती है.
- हर नोड पर, कैश मेमोरी के इस्तेमाल के लिए मेमोरी का कुछ प्रतिशत हिस्सा रिज़र्व किया जाता है.
- मेमोरी की सीमा पूरी होने पर, Apigee Edge मेमोरी से कैश मेमोरी में मौजूद एंट्री हटा देता है. हालांकि, ये एंट्री अब भी L2 पर्सिस्टेंट कैश में सेव रहती हैं. इससे यह पक्का होता है कि मेमोरी, दूसरी प्रोसेस के लिए उपलब्ध रहे.
- एंट्री को पिछली बार ऐक्सेस किए जाने के समय के हिसाब से हटाया जाता है. सबसे पुरानी एंट्री को सबसे पहले हटाया जाता है.
- ये कैश मेमोरी, कैश मेमोरी में मौजूद एंट्री की संख्या से भी सीमित होती हैं.
-
मेमोरी कैश के नीचे, दूसरा लेवल एक पर्सिस्टेंट कैश (L2) होता है. मैसेज प्रोसेस करने वाले सभी नोड, कैश मेमोरी में सेव की गई एंट्री को बनाए रखने के लिए, कैश मेमोरी का डेटा स्टोर (Cassandra) शेयर करते हैं.
- कैश मेमोरी में मौजूद एंट्री को L1 कैश मेमोरी से हटाने के बाद भी, वे यहां बनी रहती हैं. जैसे, जब कैश मेमोरी की सीमा पूरी हो जाती है.
- हमेशा सेव रहने वाला कैश, मैसेज प्रोसेसर के साथ शेयर किया जाता है. भले ही, वे अलग-अलग इलाकों में हों. इसलिए, कैश मेमोरी में सेव की गई एंट्री, किसी भी नोड के लिए उपलब्ध होती हैं. भले ही, कैश मेमोरी में सेव किए गए डेटा के लिए अनुरोध किसी भी नोड से मिले हो.
- सिर्फ़ तय साइज़ की एंट्री को कैश मेमोरी में सेव किया जा सकता है. साथ ही, कैश मेमोरी से जुड़ी अन्य सीमाएं भी लागू होती हैं. कैश मेमोरी की सीमाएं मैनेज करना लेख पढ़ें.
Apigee कम्यूनिटी पर, Apigee Edge कैश मेमोरी के बारे में ज़्यादा जानकारी भी पढ़ी जा सकती है.
नीतियां कैश मेमोरी का इस्तेमाल कैसे करती हैं
यहां बताया गया है कि कैश मेमोरी से जुड़ी आपकी नीतियों के काम करने के तरीके के हिसाब से, Apigee Edge कैश मेमोरी में सेव की गई एंट्री को कैसे मैनेज करता है.
- जब कोई नीति कैश मेमोरी (PopulateCache या
ResponseCache नीति) में नई एंट्री लिखती है, तो:
- Edge, इन-मेमोरी L1 कैश में सिर्फ़ उस मैसेज प्रोसेसर पर एंट्री लिखता है जिसने अनुरोध को मैनेज किया था. अगर एंट्री की समयसीमा खत्म होने से पहले, मैसेज प्रोसेसर की मेमोरी की सीमाएं पूरी हो जाती हैं, तो Edge, एंट्री को L1 कैश मेमोरी से हटा देता है.
- Edge, एंट्री को L2 कैश मेमोरी में भी सेव करता है.
- जब कोई नीति कैश मेमोरी (LookupCache या ResponseCache नीति) से रीड करती है, तो:
- Edge, अनुरोध को मैनेज करने वाले मैसेज प्रोसेसर के इन-मेमोरी L1 कैश में सबसे पहले एंट्री खोजता है.
- अगर मेमोरी में कोई मिलती-जुलती एंट्री नहीं है, तो Edge, L2 पर्सिस्टेंट कैश में एंट्री खोजता है.
- अगर एंट्री, पर्सिस्टेंट कैश मेमोरी में नहीं है, तो:
- LookupCache नीति: कैश मेमोरी से कोई वैल्यू नहीं मिलती.
- ResponseCache नीति: Edge, टारगेट से क्लाइंट को असल जवाब दिखाता है और एंट्री को कैश मेमोरी में तब तक सेव करता है, जब तक उसकी समयसीमा खत्म नहीं हो जाती या उसे अमान्य नहीं कर दिया जाता.
- जब कोई नीति, कैश मेमोरी की किसी मौजूदा एंट्री (InvalidateCache, PopulateCache या ResponseCache नीति) को अपडेट या अमान्य कर देती है, तो:
- अनुरोध पाने वाला मैसेज प्रोसेसर, अपने और सभी इलाकों के अन्य मैसेज प्रोसेसर के एल1 कैश मेमोरी में मौजूद एंट्री को अपडेट या मिटाने के लिए ब्रॉडकास्ट भेजता है.
- अगर ब्रॉडकास्ट पूरा हो जाता है, तो मैसेज पाने वाला हर प्रोसेसर, L1 कैश मेमोरी में मौजूद एंट्री को अपडेट करता है या हटा देता है.
- अगर ब्रॉडकास्ट पूरा नहीं हो पाता है, तो अमान्य कैश मेमोरी वैल्यू, उन मैसेज प्रोसेसर के L1 कैश मेमोरी में बनी रहती है जिन्हें ब्रॉडकास्ट नहीं मिला है. उन मैसेज प्रोसेसर के L1 कैश में, तब तक पुराना डेटा रहेगा, जब तक एंट्री का टाइम-टू-लाइव (TTL) खत्म नहीं हो जाता या मैसेज प्रोसेसर की मेमोरी की सीमा पूरी होने पर उसे हटा नहीं दिया जाता.
- ब्रॉडकास्ट, L2 कैश मेमोरी में मौजूद एंट्री को भी अपडेट या मिटा देता है.
- अनुरोध पाने वाला मैसेज प्रोसेसर, अपने और सभी इलाकों के अन्य मैसेज प्रोसेसर के एल1 कैश मेमोरी में मौजूद एंट्री को अपडेट या मिटाने के लिए ब्रॉडकास्ट भेजता है.
कैश मेमोरी की सीमाएं मैनेज करना
कॉन्फ़िगरेशन की मदद से, कैश मेमोरी के कुछ पहलुओं को मैनेज किया जा सकता है. मेमोरी कैश के लिए उपलब्ध कुल जगह, सिस्टम के संसाधनों पर निर्भर करती है. इसे कॉन्फ़िगर नहीं किया जा सकता. कैश मेमोरी पर ये पाबंदियां लागू होती हैं:
- कैश मेमोरी की सीमाएं: कैश मेमोरी के लिए कई सीमाएं लागू होती हैं. जैसे, नाम और वैल्यू का साइज़, कैश मेमोरी की कुल संख्या, कैश मेमोरी में आइटम की संख्या, और समयसीमा.
-
इन-मेमोरी (L1) कैश. कैश मेमोरी की सीमाओं को कॉन्फ़िगर नहीं किया जा सकता. Apigee, हर उस मैसेज प्रोसेसर के लिए सीमाएं तय करता है जो एक से ज़्यादा ग्राहकों के लिए कैश मेमोरी होस्ट करता है.
होस्ट किए गए क्लाउड एनवायरमेंट में, सभी ग्राहक डिप्लॉयमेंट के लिए इन-मेमोरी कैश मेमोरी, कई शेयर किए गए मैसेज प्रोसेसर पर होस्ट की जाती है. हर प्रोसेसर में, Apigee से कॉन्फ़िगर की जा सकने वाली मेमोरी का प्रतिशत थ्रेशोल्ड होता है. इससे यह पक्का होता है कि कैश मेमोरी, ऐप्लिकेशन की पूरी मेमोरी का इस्तेमाल न करे. जब किसी मैसेज प्रोसेसर के लिए थ्रेशोल्ड पार हो जाता है, तो कैश मेमोरी में मौजूद एंट्री को मेमोरी से हटा दिया जाता है. मेमोरी से हटाई गई एंट्री, L2 कैश में तब तक बनी रहती हैं, जब तक उनकी समयसीमा खत्म नहीं हो जाती या उन्हें अमान्य नहीं कर दिया जाता.
- पर्सिस्टेंट (L2) कैश. कैश मेमोरी से हटाई गई एंट्री, कॉन्फ़िगर किए जा सकने वाले 'डेटा को सेव रखने का समय' सेटिंग के हिसाब से, पर्सिस्टेंट कैश में बनी रहती हैं.
कॉन्फ़िगर किए जा सकने वाले ऑप्टिमाइज़ेशन
यहां दी गई टेबल में उन सेटिंग की सूची दी गई है जिनका इस्तेमाल कैश मेमोरी की परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के लिए किया जा सकता है. नया एनवायरमेंट कैश बनाते समय, इन सेटिंग के लिए वैल्यू तय की जा सकती हैं. इस बारे में ज़्यादा जानने के लिए, एनवायरमेंट कैश बनाना और उसमें बदलाव करना लेख पढ़ें.
सेटिंग | ब्यौरा | नोट |
---|---|---|
खत्म होने की तारीख | कैश मेमोरी में सेव की गई एंट्री के लिए, 'कैश मेमोरी में सेव किए जाने की समयसीमा' तय करता है. | कोई नहीं. |