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

Apigee Edge का दस्तावेज़ देखा जा रहा है.
Apigee X के दस्तावेज़ पर जाएं.
जानकारी

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

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

एंटीपैटर्न

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

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

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

असर

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

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

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

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