स्ट्रीमिंग से जुड़े अनुरोध और जवाब

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

इस विषय में आपको क्या जानकारी मिलेगी

इस विषय को पढ़ने के बाद, आपको पता चल जाएगा:

  • Apigee Edge पर, अनुरोध और रिस्पॉन्स स्ट्रीमिंग क्या है
  • अनुरोध और जवाब स्ट्रीमिंग की सुविधा को कब इस्तेमाल करें
  • अनुरोध और जवाब को स्ट्रीम करने की सुविधा चालू करने का तरीका

अनुरोध और जवाब स्ट्रीमिंग क्या है?

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

मुझे स्ट्रीमिंग की सुविधा कब चालू करनी चाहिए?

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

मुझे स्ट्रीम करने के बारे में और क्या पता होना चाहिए?

स्ट्रीमिंग चालू होने पर भी, Edge Cloud और Private Cloud में मैसेज पेलोड का साइज़ 10 एमबी तक सीमित है. स्ट्रीम नहीं किए गए अनुरोधों और जवाबों में, तय साइज़ से ज़्यादा होने पर protocol.http.TooBigBody गड़बड़ी होती है.

Edge for Private Cloud डिप्लॉयमेंट में, स्ट्रीम न किए जाने वाले अनुरोध/रिस्पॉन्स के साइज़ की सीमा में बदलाव किया जा सकता है. प्रोडक्शन में बदलाव को लागू करने से पहले उसकी जांच करना न भूलें.

  • Edge for Private Cloud की 4.16.01 से पहले वाली रिलीज़ के लिए:

    सभी Message प्रोसेसर पर, HTTPResponse.body.buffer.limit पैरामीटर में सीमा बढ़ाने के लिए http.properties फ़ाइल में बदलाव करें. इसके बाद, Message प्रोसेसर को रीस्टार्ट करें.
  • Edge for Private Cloud के 4.16.01 और उसके बाद के वर्शन के लिए:
    1. फ़ाइल /<inst_root>/apigee/customer/application/message-processor.properties में बदलाव करें. अगर वह फ़ाइल मौजूद नहीं है, तो उसे बनाएं.

    2. message-processor.properties में conf_http_HTTPResponse.body.buffer.limit प्रॉपर्टी सेट करें. उदाहरण के लिए:
      conf_http_HTTPResponse.body.buffer.limit=5m

    3. मैसेज प्रोसेसर को रीस्टार्ट करें:
      > /<inst_root>/apigee/apigee-service/bin/apigee-serviceedge-message-processor फिर से चालू करें

    4. सभी मैसेज प्रोसेसर के लिए दोहराएं.

अनुरोध और जवाब को स्ट्रीम करने की सुविधा चालू करने का तरीका

अनुरोध स्ट्रीमिंग की सुविधा चालू करने के लिए, आपको प्रॉक्सी बंडल में मौजूद प्रॉक्सीEndpoint और 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>

इस उदाहरण में, प्रॉक्सीEndpoint की परिभाषा में रिस्पॉन्स और स्ट्रीमिंग का अनुरोध चालू करने का तरीका बताया गया है:

<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 पर एपीआई प्रॉक्सी सैंपल को डाउनलोड और इस्तेमाल करना आसान है. सैंपल डाउनलोड और इस्तेमाल करने के बारे में जानकारी के लिए, सैंपल एपीआई प्रॉक्सी का इस्तेमाल करना देखें.

स्ट्रीमिंग की सुविधा वाली प्रॉक्सी प्रॉक्सी में ये शामिल हैं:

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