एंटीपैटर्न: स्ट्रीमिंग चालू होने पर, अनुरोध/रिस्पॉन्स पेलोड ऐक्सेस करें

यहां Apigee Edge का दस्तावेज़ देखा जा रहा है.
Go to the Apigee X documentation.
info

Edge में, डिफ़ॉल्ट तौर पर एचटीटीपी अनुरोध और रिस्पॉन्स पेलोड, एपीआई प्रॉक्सी में मौजूद नीतियों से प्रोसेस होने से पहले, इन-मेमोरी बफ़र में सेव होते हैं.

अगर स्ट्रीमिंग की सुविधा चालू है, तो अनुरोध और रिस्पॉन्स पेलोड को क्लाइंट ऐप्लिकेशन (रिस्पॉन्स के लिए) और टारगेट एंडपॉइंट (अनुरोधों के लिए) पर बिना किसी बदलाव के स्ट्रीम किया जाता है. स्ट्रीमिंग की सुविधा तब काम की होती है, जब कोई ऐप्लिकेशन बड़े पेलोड स्वीकार करता है या उन्हें वापस करता है. इसके अलावा, यह सुविधा तब भी काम की होती है, जब कोई ऐप्लिकेशन समय के साथ-साथ डेटा को हिस्सों में वापस करता है.

ऐसी स्थिति से बचना चाहिए

स्ट्रीमिंग की सुविधा चालू होने पर, अनुरोध/रिस्पॉन्स पेलोड को ऐक्सेस करने पर, Edge डिफ़ॉल्ट बफ़रिंग मोड पर वापस चला जाता है.

पहली इमेज: स्ट्रीमिंग की सुविधा चालू होने पर, अनुरोध/रिस्पॉन्स पेलोड को ऐक्सेस करना

ऊपर दी गई इमेज से पता चलता है कि हम अनुरोध पेलोड से वैरिएबल निकालने की कोशिश कर रहे हैं और JSONToXML नीति का इस्तेमाल करके, JSON रिस्पॉन्स पेलोड को XML में बदल रहे हैं. ऐसा करने पर, Edge में स्ट्रीमिंग की सुविधा बंद हो जाएगी.

असर

  • स्ट्रीमिंग की सुविधा बंद हो जाएगी. इससे डेटा को प्रोसेस करने में ज़्यादा समय लग सकता है
  • इन-मेमोरी बफ़र का इस्तेमाल करने की वजह से, मैसेज प्रोसेसर पर हीप मेमोरी के इस्तेमाल में बढ़ोतरी या OutOfMemory से जुड़ी गड़बड़ियां दिख सकती हैं . ऐसा तब हो सकता है, जब हमारे पास बड़े अनुरोध/रिस्पॉन्स पेलोड हों

सबसे सही तरीका

  • स्ट्रीमिंग की सुविधा चालू होने पर, अनुरोध/रिस्पॉन्स पेलोड को ऐक्सेस न करें.

इस बारे में और पढ़ें