অ্যান্টিপ্যাটার্ন: কাস্টম কোড বা লক্ষ্য হিসাবে ব্যবহার করে একটি প্রক্সির মধ্যে একটি প্রক্সি আহ্বান করুন

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

Edge আপনাকে একটি API প্রক্সি থেকে অন্য API প্রক্সিকে কল করার সুযোগ দেয়। এই বৈশিষ্ট্যটি বিশেষ করে তখন কাজে আসে, যখন আপনার এমন একটি API প্রক্সি থাকে যাতে পুনঃব্যবহারযোগ্য কোড রয়েছে যা অন্য API প্রক্সিগুলো ব্যবহার করতে পারে।

অ্যান্টিপ্যাটার্ন

টার্গেট এন্ডপয়েন্টে HTTPTargetConnection ব্যবহার করে অথবা কাস্টম জাভাস্ক্রিপ্ট কোড ব্যবহার করে একটি এপিআই প্রক্সি থেকে অন্যটিকে কল করলে অতিরিক্ত নেটওয়ার্ক হপ তৈরি হয়।

HTTPTargetConnection ব্যবহার করে প্রক্সি ১ থেকে প্রক্সি ২ চালু করুন

নিম্নলিখিত কোড নমুনাটি HTTPTargetConnection ব্যবহার করে প্রক্সি ১ থেকে প্রক্সি ২-কে কল করে:

<!-- /antipatterns/examples/2-1.xml -->
<HTTPTargetConnection>
  <URL>http://myorg-test.apigee.net/proxy2</URL>
</HTTPTargetConnection>

জাভাস্ক্রিপ্ট কোড থেকে প্রক্সি ১ এর মাধ্যমে প্রক্সি ২ কে আহ্বান করুন

পরবর্তী কোড নমুনাটি জাভাস্ক্রিপ্ট ব্যবহার করে প্রক্সি ১ থেকে প্রক্সি ২-কে আহ্বান করে:

<!-- /antipatterns/examples/2-2.xml -->
var response = httpClient.send('http://myorg-test.apigee.net/proxy2);
response.waitForComplete();

কোড প্রবাহ

এর অন্তর্নিহিত অসুবিধাটি কেন রয়েছে তা বুঝতে হলে, নিচের ডায়াগ্রামে দেখানো অনুযায়ী একটি অনুরোধ যে পথ ধরে অগ্রসর হয়, তা আমাদের বুঝতে হবে:

চিত্র ১ : কোড প্রবাহ

ডায়াগ্রামে যেমন দেখানো হয়েছে, একটি অনুরোধ রাউটার এবং মেসেজ প্রসেসর সহ একাধিক ডিস্ট্রিবিউটেড কম্পোনেন্টের মধ্য দিয়ে যায়।

উপরের কোড স্যাম্পলগুলোতে, প্রক্সি ১ থেকে প্রক্সি ২-কে কল করার অর্থ হলো, রানটাইমে রিকোয়েস্টটিকে প্রচলিত রুটের (অর্থাৎ রাউটার > এমপি) মাধ্যমে রাউট করতে হবে। এটি অনেকটা ক্লায়েন্ট থেকে একটি এপিআই কল করার মতো, যার ফলে একাধিক নেটওয়ার্ক হপ তৈরি হয় এবং ল্যাটেন্সি বেড়ে যায়। এই হপগুলো অপ্রয়োজনীয়, কারণ প্রক্সি ১-এর রিকোয়েস্টটি ইতোমধ্যেই এমপি-তে "পৌঁছে গেছে"।

প্রভাব

একটি এপিআই প্রক্সি থেকে অন্য এপিআই প্রক্সিকে আহ্বান করলে অপ্রয়োজনীয় নেটওয়ার্ক হপ তৈরি হয়, অর্থাৎ অনুরোধটিকে এক মেসেজ প্রসেসর থেকে অন্য মেসেজ প্রসেসরে পাঠাতে হয়।

সর্বোত্তম অনুশীলন

  • একটি এপিআই প্রক্সি থেকে অন্য এপিআই প্রক্সি কল করার জন্য প্রক্সি চেইনিং ফিচারটি ব্যবহার করুন। প্রক্সি চেইনিং আরও বেশি কার্যকর, কারণ এটি টার্গেট এন্ডপয়েন্টকে (অন্য একটি এপিআই প্রক্সি) রেফারেন্স করার জন্য লোকাল কানেকশন ব্যবহার করে।

    কোড নমুনাটি আপনার এন্ডপয়েন্ট সংজ্ঞায় LocalTargetConnection ব্যবহার করে প্রক্সি চেইনিং দেখাচ্ছে:

    <!-- /antipatterns/examples/2-3.xml -->
    <LocalTargetConnection>
      <APIProxy>proxy2</APIProxy>
      <ProxyEndpoint>default</ProxyEndpoint>
    </LocalTargetConnection>

    আহ্বান করা এপিআই প্রক্সিটি একই মেসেজ প্রসেসরের মধ্যেই কার্যকর হয়; ফলে এটি নেটওয়ার্ক হপ এড়িয়ে যায়, যেমনটি নিচের চিত্রে দেখানো হয়েছে:

    চিত্র ২ : প্রক্সি চেইনিং সহ কোড প্রবাহ

আরও পড়ুন