স্ট্রিমিং অনুরোধ এবং প্রতিক্রিয়া

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।

আপনি এই বিষয়ে কি শিখবেন

এই বিষয় পড়ার পর আপনি জানতে পারবেন:

  • Apigee Edge এ কী অনুরোধ এবং প্রতিক্রিয়া স্ট্রিমিং
  • কখন অনুরোধ এবং প্রতিক্রিয়া স্ট্রিমিং ব্যবহার করবেন
  • কীভাবে অনুরোধ এবং প্রতিক্রিয়া স্ট্রিমিং সক্ষম করবেন

অনুরোধ এবং প্রতিক্রিয়া স্ট্রিমিং কি?

ডিফল্টরূপে, HTTP স্ট্রিমিং অক্ষম করা হয় এবং HTTP অনুরোধ এবং প্রতিক্রিয়া পেলোডগুলি API প্রক্সি পাইপলাইন দ্বারা প্রক্রিয়া করার আগে মেমরির একটি বাফারে লেখা হয়। আপনি স্ট্রিমিং সক্ষম করে এই আচরণ পরিবর্তন করতে পারেন। স্ট্রিমিং সক্ষম হলে, ক্লায়েন্ট অ্যাপে (প্রতিক্রিয়ার জন্য) এবং টার্গেট এন্ডপয়েন্ট (অনুরোধের জন্য) পরিবর্তন ছাড়াই অনুরোধ এবং প্রতিক্রিয়া পেলোডগুলি স্ট্রিম করা হয়।

আমি কখন স্ট্রিমিং সক্ষম করব?

যদি আপনার API প্রক্সি খুব বড় অনুরোধ এবং/অথবা প্রতিক্রিয়াগুলি পরিচালনা করে (আকারের সীমার জন্য, নীচে স্ট্রিমিং সম্পর্কে আমার আর কী জানা উচিত দেখুন), আপনি স্ট্রিমিং সক্ষম করতে চাইতে পারেন৷

স্ট্রিমিং সম্পর্কে আমার আর কি জানা উচিত?

এজ ক্লাউড এবং প্রাইভেট ক্লাউডে বার্তা পেলোডের আকার 10 এমবি-তে সীমাবদ্ধ, এমনকি স্ট্রিমিং সক্ষম থাকা সত্ত্বেও। নন-স্ট্রীম করা অনুরোধ এবং প্রতিক্রিয়াগুলিতে, সেই আকারকে অতিক্রম করার ফলে একটি protocol.http.TooBigBody ত্রুটি দেখা দেয়।

ব্যক্তিগত ক্লাউড স্থাপনার জন্য এজ-এ, আপনি অ-স্ট্রীমড অনুরোধ/প্রতিক্রিয়া আকারের সীমা পরিবর্তন করতে পারেন। উত্পাদনে পরিবর্তন স্থাপন করার আগে পরীক্ষা করতে ভুলবেন না।

  • প্রাইভেট ক্লাউডের জন্য এজ 4.16.01 এর আগের রিলিজের জন্য:

    সমস্ত মেসেজ প্রসেসরে, HTTPResponse.body.buffer.limit প্যারামিটারে সীমা বাড়ানোর জন্য http.properties ফাইলটি সম্পাদনা করুন এবং তারপর মেসেজ প্রসেসর পুনরায় চালু করুন।
  • এজ ফর প্রাইভেট ক্লাউড রিলিজ 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-service edge-message-processor রিস্টার্ট

    4. সমস্ত বার্তা প্রসেসরের জন্য পুনরাবৃত্তি করুন।

কীভাবে অনুরোধ এবং প্রতিক্রিয়া স্ট্রিমিং সক্ষম করবেন

অনুরোধ স্ট্রিমিং সক্ষম করতে আপনাকে প্রক্সি বান্ডেলে ProxyEndpoint এবং TargetEndpoint সংজ্ঞাগুলিতে request.streaming.enabled প্রপার্টি যোগ করতে হবে এবং এটিকে true সেট করতে হবে। একইভাবে, প্রতিক্রিয়া স্ট্রিমিং সক্ষম করতে response.streaming.enabled প্রপার্টি সেট করুন।

আপনি এই কনফিগারেশন ফাইলগুলিকে আপনার প্রক্সির জন্য বিকাশ দৃশ্যে ব্যবস্থাপনা UI-তে সনাক্ত করতে পারেন। আপনি যদি স্থানীয়ভাবে বিকাশ করেন, এই সংজ্ঞা ফাইলগুলি 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 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 এ API প্রক্সি নমুনা ডাউনলোড এবং ব্যবহার করা সহজ। নমুনা ডাউনলোড এবং ব্যবহার সম্পর্কে তথ্যের জন্য নমুনা API প্রক্সি ব্যবহার করা দেখুন।

স্ট্রিমিং বৈশিষ্ট্যের নমুনা প্রক্সিগুলির মধ্যে রয়েছে:

  • স্ট্রিমিং - HTTP স্ট্রিমিংয়ের জন্য কনফিগার করা একটি API প্রক্সি প্রদর্শন করে।
  • এজ কলআউট: স্বাক্ষরিত ইউআরএল জেনারেটর - একটি অনুরোধ/প্রতিক্রিয়ায় স্ট্রিম করার চেষ্টা করার পরিবর্তে বড় ফাইলগুলি অ্যাক্সেস করতে একটি স্বাক্ষরিত URL তৈরি করার সর্বোত্তম অনুশীলনকে চিত্রিত করে।