স্ট্রিম করা অনুরোধ ও উত্তর

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

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

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

  • Apigee Edge-এ অনুরোধ ও উত্তর স্ট্রিমিং কী
  • কখন অনুরোধ ও উত্তর স্ট্রিমিং ব্যবহার করতে হয়
  • অনুরোধ ও উত্তর স্ট্রিমিং কীভাবে চালু করবেন

অনুরোধ ও উত্তর স্ট্রিমিং কী?

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

কখন আমার স্ট্রিমিং চালু করা উচিত?

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

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

Edge Cloud এবং ব্যক্তিগত ক্লাউডে মেসেজ পেলোড সাইজ ১০ এমবিতে সীমাবদ্ধ থাকে। এমনকি স্ট্রিমিং চালু থাকলেও এই সীমা বজায় থাকে। স্ট্রিম না করা অনুরোধ ও উত্তরের ক্ষেত্রে, সেই সাইজের থেকে বেশি হলে protocol.http.TooBigBody সমস্যা হয়।

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

  • 4.16.01-এর আগের Edge for Private Cloud রিলিজের জন্য:

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

    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 সংজ্ঞায় কীভাবে উত্তর ও অনুরোধ স্ট্রিমিং চালু করতে হয় তা এই উদাহরণে দেখানো হয়েছে:

<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 জেনারেটর - কোনও অনুরোধ/উত্তর প্রক্রিয়ায় স্ট্রিম করার চেষ্টা না করে, বড় ফাইল অ্যাক্সেস করার জন্য সাইন করা URL জেনারেট করার সেরা পদ্ধতিকে তুলে ধরে।