आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं. जानकारी
इस विषय में आपको क्या जानकारी मिलेगी
इस विषय को पढ़ने के बाद, आपको इनके बारे में जानकारी मिलेगी:
- Apigee Edge पर अनुरोध और जवाब की स्ट्रीमिंग क्या होती है
- अनुरोध और जवाब की स्ट्रीमिंग का इस्तेमाल कब करना चाहिए
- अनुरोध और जवाब की स्ट्रीमिंग की सुविधा चालू करने का तरीका
अनुरोध और जवाब की स्ट्रीमिंग क्या होती है?
डिफ़ॉल्ट रूप से, एचटीटीपी स्ट्रीमिंग बंद होती है. साथ ही, एचटीटीपी अनुरोध और रिस्पॉन्स पेलोड को मेमोरी में मौजूद बफ़र में लिखा जाता है. इसके बाद, इन्हें एपीआई प्रॉक्सी पाइपलाइन प्रोसेस करती है. स्ट्रीमिंग की सुविधा चालू करके, इस तरीके को बदला जा सकता है. स्ट्रीमिंग की सुविधा चालू होने पर, अनुरोध और जवाब के पेलोड को क्लाइंट ऐप्लिकेशन (जवाबों के लिए) और टारगेट एंडपॉइंट (अनुरोधों के लिए) में बिना किसी बदलाव के स्ट्रीम किया जाता है.
मुझे स्ट्रीमिंग कब चालू करनी चाहिए?
अगर आपकी एपीआई प्रॉक्सी, बहुत बड़े अनुरोधों और/या जवाबों को हैंडल करती है (साइज़ की सीमाओं के लिए, नीचे मुझे स्ट्रीमिंग के बारे में और क्या जानना चाहिए देखें), तो आपको स्ट्रीमिंग की सुविधा चालू करनी चाहिए.
मुझे स्ट्रीमिंग के बारे में और क्या जानना चाहिए?
Edge Cloud और Private Cloud में, मैसेज के पेलोड का साइज़ 10 एमबी से ज़्यादा नहीं होना चाहिए. भले ही, स्ट्रीमिंग की सुविधा चालू हो. स्ट्रीम नहीं किए गए अनुरोधों और जवाबों में, इस साइज़ से ज़्यादा होने पर protocol.http.TooBigBody गड़बड़ी होती है.
Private Cloud डिप्लॉयमेंट के लिए Edge में, स्ट्रीम नहीं किए गए अनुरोध/जवाब के साइज़ की सीमा में बदलाव किया जा सकता है. बदलाव को प्रोडक्शन में डिप्लॉय करने से पहले, उसकी जांच ज़रूर कर लें.
- Edge for Private Cloud के 4.16.01 से पहले के वर्शन के लिए:
सभी मैसेज प्रोसेसर पर,http.propertiesफ़ाइल में बदलाव करकेHTTPResponse.body.buffer.limitपैरामीटर की सीमा बढ़ाएं. इसके बाद, मैसेज प्रोसेसर को फिर से चालू करें. -
Edge for Private Cloud के 4.16.01 और इसके बाद के वर्शन के लिए:
-
/<inst_root>/apigee/customer/application/message-processor.properties फ़ाइल में बदलाव करें. अगर वह फ़ाइल मौजूद नहीं है, तो उसे बनाएं.
-
message-processor.properties में conf_http_HTTPResponse.body.buffer.limit प्रॉपर्टी सेट करें. उदाहरण के लिए:
conf_http_HTTPResponse.body.buffer.limit=5m -
मैसेज प्रोसेसर को फिर से चालू करें:
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-message-processor restart -
इस प्रोसेस को सभी मैसेज प्रोसेसर के लिए दोहराएं.
-
अनुरोध और जवाब की स्ट्रीमिंग की सुविधा चालू करने का तरीका
अनुरोध स्ट्रीमिंग की सुविधा चालू करने के लिए, आपको प्रॉक्सी बंडल में ProxyEndpoint और TargetEndpoint की परिभाषाओं में request.streaming.enabled प्रॉपर्टी जोड़नी होगी. साथ ही, इसे true पर सेट करना होगा. इसी तरह, जवाब की स्ट्रीमिंग चालू करने के लिए response.streaming.enabled प्रॉपर्टी सेट करें.
इन कॉन्फ़िगरेशन फ़ाइलों को, अपनी प्रॉक्सी के लिए डेवलप व्यू में मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में देखा जा सकता है. अगर स्थानीय तौर पर डेवलपमेंट किया जा रहा है, तो ये परिभाषा वाली फ़ाइलें apiproxy/proxies और apiproxy/targets में मौजूद होती हैं.
इस सैंपल में, TargetEndpoint की परिभाषा में अनुरोध और जवाब, दोनों के लिए स्ट्रीमिंग की सुविधा चालू करने का तरीका दिखाया गया है.
<TargetEndpoint name="default">
<HTTPTargetConnection>
<URL>http://mocktarget.apigee.net</URL>
<Properties>
<Property name="response.streaming.enabled">true</Property>
<Property name="request.streaming.enabled">true</Property>
<Property name="supports.http10">true</Property>
<Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property>
<Property name="retain.queryparams">apikey</Property>
</Properties>
</HTTPTargetConnection>
</TargetEndpoint>इस उदाहरण में, ProxyEndpoint की परिभाषा में रिस्पॉन्स और अनुरोध स्ट्रीमिंग को चालू करने का तरीका बताया गया है:
<ProxyEndpoint name="default">
<HTTPProxyConnection>
<BasePath>/v1/weather</BasePath>
<Properties>
<Property name="allow.http10">true</Property>
<Property name="response.streaming.enabled">true</Property>
<Property name="request.streaming.enabled">true</Property>
</Properties>
</HTTPProxyConnection>
</ProxyEndpoint>एंडपॉइंट की परिभाषाएं कॉन्फ़िगर करने के बारे में ज़्यादा जानकारी के लिए, एंडपॉइंट प्रॉपर्टी का रेफ़रंस देखें.
मिलते-जुलते कोड सैंपल
GitHub पर एपीआई प्रॉक्सी के सैंपल आसानी से डाउनलोड किए जा सकते हैं और उनका इस्तेमाल किया जा सकता है. सैंपल डाउनलोड करने और उन्हें इस्तेमाल करने के बारे में जानकारी पाने के लिए, सैंपल एपीआई प्रॉक्सी का इस्तेमाल करना लेख पढ़ें.
स्ट्रीमिंग की सुविधा देने वाली प्रॉक्सी के उदाहरण:
- streaming - यह एचटीटीपी स्ट्रीमिंग के लिए कॉन्फ़िगर किए गए एपीआई प्रॉक्सी को दिखाता है.
- Edge Callout: Signed URL Generator - इसमें, बड़ी फ़ाइलों को ऐक्सेस करने के लिए, हस्ताक्षर किया गया यूआरएल जनरेट करने का सबसे सही तरीका बताया गया है. इसके बजाय, अनुरोध/जवाब में उन्हें स्ट्रीम करने की कोशिश की जाती है.