আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন। তথ্য
Edge Microgateway v. 3.3.x
দর্শক
এই বিষয় Edge Microgateway অপারেটরদের জন্য যারা মাইক্রোগেটওয়ের সাথে ইনস্টল করা আছে এমন বর্তমান প্লাগ-ইন ব্যবহার করতে চান। এছাড়াও, এটি স্পাইক অ্যারেস্ট এবং কোটা প্লাগ-ইন সম্পর্কে বিস্তারিত আলোচনা করে (দুটিই ইনস্টলেশনের সাথে অন্তর্ভুক্ত)। আপনি যদি একজন ডেভেলপার হন এবং নতুন প্লাগ-ইন ডেভেলপ করতে চান, তাহলে কাস্টম প্লাগ-ইন ডেভেলপ করুন দেখুন।
Edge Microgateway প্লাগ-ইন কী?
প্লাগ-ইন হল একটি Node.js মডিউল যা Edge Microgateway-তে ফাংশনালিটি যোগ করে। প্লাগ-ইন মডিউল একটি নির্দিষ্ট প্যাটার্ন মেনে চলে এবং Edge Microgateway-এর পরিচিত লোকেশনে স্টোর করা হয়, যা মাইক্রোগেটওয়েকে সেগুলি অটোমেটিক খুঁজে পেতে এবং লোড করতে সাহায্য করে। Edge Microgateway-তে আগে থেকেই থাকা বেশ কিছু প্লাগ-ইন অন্তর্ভুক্ত থাকে এবং আপনি কাস্টম প্লাগ-ইন ডেভেলপ করুন নিবন্ধে ব্যাখ্যা করা হয়েছে সেই অনুযায়ী কাস্টম প্লাগ-ইনও তৈরি করতে পারেন।
Edge Microgateway-এর সাথে বান্ডেল করা বর্তমান প্লাগ-ইন
ইনস্টলেশনের সময় Edge Microgateway-এর সাথে বেশ কিছু প্লাগ-ইন প্রদান করা হয়। নিচে দেওয়া সারণীতে সবচেয়ে বেশি ব্যবহার করা হয় এমন কিছু প্লাগ-ইন সম্পর্কে বর্ণনা করা হয়েছে।
| প্লাগ-ইন | ডিফল্ট হিসেবে চালু করা থাকে | বিবরণ |
|---|---|---|
| Analytics | হ্যাঁ | Edge Microgateway থেকে Apigee Edge-এ অ্যানালিটিক্স ডেটা পাঠায়। |
| oauth | হ্যাঁ | Edge Microgateway-তে OAuth টোকেন ও API কী যাচাইকরণ যোগ করে। Edge Microgateway সেট-আপ ও কনফিগার করা দেখুন। |
| কোটা | না | Edge Microgateway-তে অনুরোধের উপর কোটা প্রয়োগ করে। কোটা সেভ ও ম্যানেজ করতে Apigee Edge ব্যবহার করে। কোটা প্লাগ-ইন ব্যবহার করা দেখুন। |
| spikearrest | না | ট্রাফিক স্পাইক ও DoS অ্যাটাক থেকে রক্ষা করে। স্পাইক অ্যারেস্ট প্লাগ-ইন ব্যবহার করা দেখুন। |
| header-uppercase | না | ডেভেলপারদের কাস্টম প্লাগ-ইন লেখার ব্যাপারে সাহায্য করার জন্য একটি কমেন্ট করা, স্যাম্পেল প্রক্সি গাইড হিসেবে ব্যবহার করা হয়। Edge Microgateway নমুনা প্লাগ-ইন দেখুন। |
| accumulate-request | না | প্লাগ-ইন চেনের পরবর্তী হ্যান্ডলারে ডেটা পাস করার আগে একটি অবজেক্টে অনুরোধ ডেটা জমা করে। ট্রান্সফর্ম প্লাগ-ইন লেখার জন্য উপযোগী যেগুলিকে একটি সিঙ্গেল, জমা করা অনুরোধ কন্টেন্ট অবজেক্টে কাজ করতে হয়। |
| accumulate-response | না | প্লাগ-ইন চেনের পরবর্তী হ্যান্ডলারকে ডেটা পাস করার আগে একটি অবজেক্টে উত্তরের ডেটা জমা করে। ট্রান্সফর্ম প্লাগ-ইন লেখার জন্য উপযোগী, যেগুলিকে একটি সিঙ্গেল, জমা করা উত্তর কন্টেন্ট অবজেক্টে কাজ করতে হয়। |
| transform-uppercase | না | অনুরোধ বা উত্তর সংক্রান্ত ডেটা ট্রান্সফর্ম করে। এই প্লাগ-ইনটি ট্রান্সফর্ম প্লাগ-ইনের পেশাদার পদ্ধতি প্রয়োগের উদাহরণ। নমুনা প্লাগ-ইনটি একটি তুচ্ছ ট্রান্সফর্মেশন করে (অনুরোধ বা উত্তর সংক্রান্ত ডেটা বড় হাতের অক্ষরে পরিবর্তন করে); তবে, এটি সহজেই অন্যান্য ধরনের ট্রান্সফর্মেশন করার জন্য অ্যাডাপ্ট করা যেতে পারে, যেমন XML থেকে JSON-এ পরিবর্তন করা। |
| json2xml | না | Accept বা content-type হেডার অনুযায়ী অনুরোধ বা উত্তর সংক্রান্ত ডেটা ট্রান্সফর্ম করে। আরও বিবরণের জন্য, GitHub-এ প্লাগ-ইন ডকুমেন্টেশন দেখুন। |
| কোটা-মেমরি | না | Edge Microgateway-তে অনুরোধের উপর কোটা প্রয়োগ করে। স্থানীয় মেমরিতে কোটা সেভ ও ম্যানেজ করে। |
| healthcheck | না | Edge Microgateway প্রসেস -- মেমরি ব্যবহার, CPU ব্যবহার, ইত্যাদি সম্পর্কে তথ্য রিটার্ন করে। প্লাগ-ইন ব্যবহার করতে, আপনার Edge Microgateway ইনস্ট্যান্সে /healthcheck URL কল করুন। এই প্লাগ-ইনটি একটি উদাহরণ হিসেবে ব্যবহার করার জন্য তৈরি করা হয়েছে যা আপনি নিজের হেলথ চেকিং প্লাগ-ইন ইমপ্লিমেন্ট করার জন্য ব্যবহার করতে পারবেন। |
আগে থেকে থাকা প্লাগ-ইন কোথায় খুঁজে পাবেন
Edge Microgateway-এর সাথে বান্ডেল করা বর্তমান প্লাগ-ইনগুলি এখানে অবস্থিত, যেখানে [prefix]
হল npm প্রিফিক্স ডিরেক্টরি। আপনি এই ডিরেক্টরি খুঁজে না পেলে,
Edge Microgateway কোথায় ইনস্টল করা হয় দেখুন।
[prefix]/lib/node_modules/edgemicro/node_modules/microgateway-plugins
প্লাগ-ইন যোগ করা ও কনফিগার করা
প্লাগ-ইন যোগ ও কনফিগার করতে এই প্যাটার্ন অনুসরণ করুন:
- Edge Microgateway বন্ধ করুন।
- Edge Microgateway কনফিগারেশন ফাইল খুলুন। বিকল্পের জন্য, কনফিগারেশনে পরিবর্তন করা দেখুন।
- নিচে দেখানো পদ্ধতিতে কনফিগারেশন ফাইলের
plugins:sequenceএলিমেন্টে প্লাগ-ইন যোগ করুন। এই তালিকায় যেভাবে দেখানো হয়েছে সেই ক্রম অনুযায়ী প্লাগ-ইন এক্সিকিউট করা হয়।
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 plugins: dir: ../plugins sequence: - oauth - plugin-name
- প্লাগ-ইন কনফিগার করুন। কিছু প্লাগ-ইনে ঐচ্ছিক প্যারামিটার থাকে যা আপনি
কনফিগারেশন ফাইলে কনফিগার করতে পারেন। যেমন, স্পাইক অ্যারেস্ট
প্লাগ-ইন কনফিগার করতে, আপনি নিম্নলিখিত স্তবক যোগ করতে পারেন। আরও তথ্যের জন্য স্পাইক অ্যারেস্ট প্লাগ-ইন ব্যবহার করা
দেখুন।
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 plugins: dir: ../plugins sequence: - oauth - spikearrest spikearrest: timeUnit: minute allow: 10
- ফাইলটি সেভ করুন।
- আপনি কোন কনফিগারেশন ফাইল এডিট করেছেন তার উপর নির্ভর করে Edge Microgateway রিস্টার্ট বা আবার লোড করুন।
প্লাগ-ইন নির্দিষ্ট কনফিগারেশন
এই ডিরেক্টরিতে প্লাগ-ইন-নির্দিষ্ট কনফিগারেশন তৈরি করে আপনি কনফিগারেশন ফাইলে উল্লেখ করা প্লাগ-ইন প্যারামিটার ওভাররাইড করতে পারবেন:
[prefix]/lib/node_modules/edgemicro/node_modules/microgateway-plugins/config
[prefix] হল npm প্রিফিক্স ডিরেক্টরি। আপনি এই ডিরেক্টরি খুঁজে না পেলে,
Edge Microgateway কোথায় ইনস্টল করা হয় দেখুন।
plugins/<plugin_name>/config/default.yaml. যেমন, আপনি এই
ব্লকটি plugins/spikearrest/config/default.yaml-এ রাখতে পারেন এবং এটি অন্য যেকোনও
কনফিগারেশন সেটিংসকে ওভাররাইড করবে।
spikearrest: timeUnit: hour allow: 10000 buffersize: 0
স্পাইক অ্যারেস্ট প্লাগ-ইন ব্যবহার করা
স্পাইক অ্যারেস্ট প্লাগ-ইন ট্রাফিক স্পাইক থেকে রক্ষা করে। এটি Edge Microgateway ইনস্ট্যান্সের মাধ্যমে প্রসেস করা অনুরোধের সংখ্যাকে থ্রটল করে।
স্পাইক অ্যারেস্ট প্লাগ-ইন যোগ করা
প্লাগ-ইন যোগ করা ও কনফিগার করা দেখুন।
স্পাইক অ্যারেস্টের জন্য কনফিগারেশনের নমুনা
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 plugins: dir: ../plugins sequence: - oauth - spikearrest spikearrest: timeUnit: minute allow: 10 bufferSize: 5
স্পাইক অ্যারেস্টের জন্য কনফিগারেশন বিকল্প
- timeUnit: স্পাইক অ্যারেস্ট এক্সিকিউশন উইন্ডো কত ঘনঘন রিসেট হয়। সঠিক মান হল সেকেন্ড বা মিনিট।
- অনুমতি দিন: timeUnit চলাকালীন অনুমতি দেওয়ার জন্য অনুরোধের সর্বাধিক সংখ্যা। এছাড়াও, আপনি যদি একাধিক Edge Micro প্রসেস চালান, তাহলে দেখুন।
- bufferSize: (ঐচ্ছিক, ডিফল্ট = ০) bufferSize > ০ হলে, স্পাইক অ্যারেস্ট এই সংখ্যক অনুরোধ বাফারে সেভ করে। পরবর্তী এক্সিকিউশন "উইন্ডো" শুরু হলেই, প্রথমে বফার করা অনুরোধ প্রসেস করা হবে। এছাড়াও, বাফার যোগ করা দেখুন।
স্পাইক অ্যারেস্ট কীভাবে কাজ করে?
স্পাইক অ্যারেস্টকে নির্দিষ্ট সংখ্যক অনুরোধে ট্রাফিক সীমিত করার উপায় হিসেবে না ভেবে, সাধারণভাবে ট্রাফিক স্পাইক থেকে রক্ষা করার উপায় হিসেবে ভাবুন। আপনার API ও ব্যাকএন্ড একটি নির্দিষ্ট পরিমাণ ট্রাফিক হ্যান্ডেল করতে পারে এবং স্পাইক অ্যারেস্ট নীতি আপনাকে সাধারণ পরিমাণে ট্রাফিক মসৃণ করতে সাহায্য করে।
আপনি যে আক্ষরিক প্রতি মিনিট বা প্রতি সেকেন্ডের ভ্যালু দেন, রানটাইম স্পাইক অ্যারেস্টের আচরণ তার থেকে আলাদা হয়।
যেমন, আপনি যদি প্রতি মিনিটে ৩০টি অনুরোধের হার নির্দিষ্ট করেন, তাহলে সেটি এইরকম হবে:
spikearrest: timeUnit: minute allow: 30
পরীক্ষা করার সময়, আপনি হয়ত ভাবতে পারেন যে ১ সেকেন্ডে ৩০টি অনুরোধ পাঠানো যেতে পারে, যতক্ষণ না সেগুলি ১ মিনিটের মধ্যে আসছে। কিন্তু নীতি সেটিং প্রয়োগ করার ক্ষেত্রে এটি সেই পদ্ধতি নয়। আপনি যদি এটি নিয়ে ভাবেন, তাহলে ১ সেকেন্ডের মধ্যে ৩০ অনুরোধ কিছু এনভায়রনমেন্টে একটি মিনি স্পাইক হিসেবে বিবেচনা করা যেতে পারে।
তাহলে আসলে কী হয়? স্পাইক-এর মতো আচরণ প্রতিরোধ করতে, স্পাইক অ্যারেস্ট আপনার সেটিংসকে ছোট ছোট ইন্টারভ্যালে ভাগ করে অনুমোদিত ট্রাফিককে মসৃণ করে, যেমন:
প্রতি মিনিটের রেট
প্রতি মিনিটের রেটকে সেকেন্ডের অনুমোদিত ইন্টারভ্যালে স্মুথ করা হয়। যেমন, প্রতি মিনিটে ৩০টি অনুরোধকে এইভাবে মসৃণ করা হয়:
৬০ সেকেন্ড (১ মিনিট) / ৩০ = ২-সেকেন্ডের ব্যবধান, অথবা প্রতি ২ সেকেন্ডে ১টি অনুরোধ অনুমোদিত। ২ সেকেন্ডের মধ্যে দ্বিতীয় অনুরোধ করলে সেটি সম্পূর্ণ হবে না। এছাড়াও, এক মিনিটের মধ্যে ৩১তম অনুরোধটি সম্পূর্ণ করা যাবে না।
প্রতি সেকেন্ডের রেট
প্রতি সেকেন্ডের রেটকে মিলিসেকেন্ডের ব্যবধানে অনুমোদিত অনুরোধে মসৃণ করা হয়। যেমন, প্রতি সেকেন্ডে ১০টি অনুরোধকে এইভাবে স্মুথ করা হয়:
১০০০ মিলিসেকেন্ড (১ সেকেন্ড) / ১০ = ১০০ মিলিসেকেন্ডের ব্যবধান অথবা প্রায় ১টি অনুরোধ অনুমোদিত প্রতি ১০০ মিলিসেকেন্ডে । ১০০ মিলিসেকেন্ডের মধ্যে দ্বিতীয় অনুরোধ করলে তা সম্পূর্ণ হবে না। এছাড়াও, এক সেকেন্ডের মধ্যে ১১তম অনুরোধটি কাজ করবে না।
সীমা অতিক্রম করলে
নির্দিষ্ট সময়সীমার মধ্যে অনুরোধের সংখ্যা সীমা অতিক্রম করলে, স্পাইক অ্যারেস্ট HTTP 503 স্ট্যাটাস সহ এই সমস্যার মেসেজটি রিটার্ন করে:
{"error": "spike arrest policy violated"}বাফার যোগ করা
আপনার কাছে নীতিতে বাফার যোগ করার বিকল্প আছে। ধরা যাক, আপনি বাফার ১০ হিসেবে সেট করেছেন। আপনি দেখতে পাবেন যে স্পাইক অ্যারেস্ট সীমা অতিক্রম করলে API সাথে সাথেই কোনও সমস্যা দেখায় না। এর পরিবর্তে, অনুরোধগুলি বাফার করা হয় (নির্দিষ্ট সংখ্যা পর্যন্ত) এবং পরবর্তী উপযুক্ত এক্সিকিউশন উইন্ডো উপলভ্য হওয়ার সাথে সাথেই বাফার করা অনুরোধগুলি প্রসেস করা হয়। ডিফল্ট bufferSize হল ০।
আপনি একাধিক Edge Micro প্রসেস চালালে
অনুমোদিত অনুরোধের সংখ্যা Edge Micro-এর কতগুলি ওয়ার্কার প্রসেস চলছে তার উপর নির্ভর করে।
স্পাইক অ্যারেস্ট, প্রতি ওয়ার্কার প্রসেসে অনুমোদিত অনুরোধের সংখ্যা গণনা করে। ডিফল্ট হিসেবে,
Edge Micro প্রসেসের সংখ্যা Edge Micro ইনস্টল করা
মেশিনের CPU-এর সংখ্যার সমান হয়। তবে, আপনি start কমান্ডে --processes বিকল্প ব্যবহার করে Edge Micro
শুরু করার সময় ওয়ার্কার প্রসেসের সংখ্যা কনফিগার করতে পারবেন। যেমন, আপনি যদি
চান যে কোনও নির্দিষ্ট সময়সীমার মধ্যে ১০০টি অনুরোধে স্পাইক অ্যারেস্ট ট্রিগার হোক এবং আপনি যদি --processes 4 বিকল্পের সাথে Edge
Microgateway শুরু করেন, তাহলে স্পাইক অ্যারেস্ট
কনফিগে allow: 25 সেট করুন। সংক্ষেপে, allow config
প্যারামিটারকে "কাঙ্ক্ষিত স্পাইক অ্যারেস্ট কাউন্ট / প্রসেসের সংখ্যা" ভ্যালুতে সেট করাই হল সাধারণ নিয়ম।
কোটা প্লাগ-ইন ব্যবহার করা
কোটা হল অনুরোধ মেসেজের সংখ্যা যা কোনও অ্যাপকে এক ঘণ্টা, এক দিন, এক সপ্তাহ বা এক মাস ধরে API-তে জমা দেওয়ার অনুমতি দেওয়া হয়। কোনও অ্যাপ কোটার সীমায় পৌঁছে গেলে, পরবর্তী API কল বাতিল করা হয়। এছাড়াও দেখুন স্পাইক অ্যারেস্ট ও কোটার মধ্যে পার্থক্য কী?
কোটা প্লাগ-ইন যোগ করা
প্লাগ-ইন যোগ করা ও কনফিগার করা দেখুন।
Apigee Edge-এ প্রোডাক্ট কনফিগারেশন
আপনি Apigee Edge UI-তে কোটা কনফিগার করেন, যেখানে API প্রোডাক্ট কনফিগার করেন। আপনাকে জানতে হবে কোন প্রোডাক্টে মাইক্রোগেটওয়ে-অ্যাওয়ার প্রক্সি আছে যেটিকে আপনি কোটা দিয়ে সীমিত করতে চান। এই প্রোডাক্টটি অবশ্যই ডেভেলপার অ্যাপে যোগ করতে হবে। আপনি যখন ডেভেলপার অ্যাপে কী ব্যবহার করে API কল করেন, তখন সেইসব API কলের উপর কোটা প্রয়োগ করা হবে।
- আপনার Apigee Edge প্রতিষ্ঠানের অ্যাকাউন্টে লগ-ইন করুন।
- Edge UI-তে, মাইক্রোগেটওয়ে-অ্যাওয়ার প্রক্সির সাথে যুক্ত প্রোডাক্টটি খুলুন, যেখানে
আপনি কোটা প্রয়োগ করতে চান।
- UI-তে, 'প্রকাশ করুন' মেনু থেকে প্রোডাক্ট বিকল্প বেছে নিন।
- আপনি যে API-তে কোটা প্রয়োগ করতে চান, সেই API থাকা প্রোডাক্টটি খুলুন।
- এডিট করুন বিকল্পে ক্লিক করুন।
- কোটা ফিল্ডে, কোটা ইন্টারভ্যাল নির্দিষ্ট করুন। যেমন, প্রতি
এক মিনিটে ১০০টি অনুরোধ। অথবা প্রতি ২ ঘণ্টায় ৫০,০০০ অনুরোধ।

- সেভ করুন বিকল্পে ক্লিক করুন।
- নিশ্চিত করুন যে প্রোডাক্টটি কোনও ডেভেলপার অ্যাপে যোগ করা হয়েছে। আপনাকে যাচাই করা API কল করতে এই অ্যাপের কী প্রয়োজন হবে।
কোটার জন্য কনফিগারেশনের নমুনা
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 plugins: dir: ../plugins sequence: - oauth - quota
কোটার জন্য কনফিগারেশন বিকল্প
কোটা প্লাগ-ইন কনফিগার করতে, আপনার কনফিগারেশন ফাইলে quotas এলিমেন্ট যোগ করুন,
নিচের উদাহরণে যেভাবে দেখানো হয়েছে:
edgemicro:
home: ../gateway
port: 8000
max_connections: -1
max_connections_hard: -1
logging:
level: info
dir: /var/tmp
stats_log_interval: 60
plugins:
dir: ../plugins
sequence:
- oauth
- quota
quotas:
bufferSize:
hour: 20000
minute: 500
month: 1
default: 10000
useDebugMpId: true
failOpen: true
isHTTPStatusTooManyRequestEnabled: true
...| Option | বিবরণ |
|---|---|
bufferSize |
(পূর্ণসংখ্যা) quotas: bufferSize: minute: 500 default: 10000 useDebugMpId: true failOpen: true ডিফল্ট হিসেবে, কোটা ইন্টারভ্যাল "মিনিট" হিসেবে সেট করা থাকলে, মাইক্রোগেটওয়ে প্রতি ৫ সেকেন্ডে Apigee Edge-এর সাথে কোটা কাউন্টার সিঙ্ক করে। উপরের কনফিগারেশন থেকে বোঝা যায় যে API প্রোডাক্টে কোটা ইন্টারভ্যাল "মিনিট" হিসেবে সেট করা থাকলে, Edge Microgateway, Edge-এর সাথে সিঙ্ক করে প্রতি ৫০০টি অনুরোধ বা ৫ সেকেন্ডের মধ্যে যেটি আগে ঘটবে, তার পরে বর্তমান কোটা কাউন্ট পাবে। আরও তথ্যের জন্য, কোটা কীভাবে গণনা করা হয় তা বোঝা দেখুন।
অনুমোদিত সময়
এককগুলির মধ্যে রয়েছে: |
isHTTPStatusTooManyRequestEnabled |
কোটা লঙ্ঘন হলে, কোটা প্লাগ-ইনকে স্ট্যাটাস 403-এর পরিবর্তে HTTP 429 রেসপন্স স্ট্যাটাস রিটার্ন করার জন্য কনফিগার করে।
ডিফল্ট:
ফ্ল্যাগ
ডিফল্ট HTTP রিটার্ন স্ট্যাটাস পরিবর্তন করে edgemicro: ... quotas: isHTTPStatusTooManyRequestEnabled: true |
failOpen |
এই ফিচার চালু করা থাকলে, কোটা প্রসেস করার সময় কোনও সমস্যা হলে
অথবা Edge-এ "কোটা প্রয়োগ করুন" অনুরোধ রিমোট কোটা কাউন্টার আপডেট করতে না পারলে, পরবর্তী সফল রিমোট কোটা
সিঙ্ক না হওয়া পর্যন্ত কোটা শুধুমাত্র লোকাল কাউন্টের উপর ভিত্তি করে প্রসেস করা হবে। এইসব ক্ষেত্রে, অনুরোধ অবজেক্টে একটি quota-failed-open ফ্ল্যাগ সেট করা হয়।
কোটা "fail open" ফিচার চালু করতে, নিম্নলিখিত কনফিগারেশন সেট করুন: edgemicro: ... quotas: failOpen: true |
useDebugMpId |
কোটা সংক্রান্ত উত্তরে MP
(মেসেজ প্রসেসর) ID
লগ করার সুবিধা চালু করতে, এই ফ্ল্যাগটি true-এ সেট করুন।
এই ফিচার ব্যবহার করতে, আপনাকে অবশ্যই নিম্নলিখিত কনফিগারেশন সেট করতে হবে: edgemicro: ... quotas: useDebugMpId: true ...
{
"allowed": 20,
"used": 3,
"exceeded": 0,
"available": 17,
"expiryTime": 1570748640000,
"timestamp": 1570748580323,
"debugMpId": "6a12dd72-5c8a-4d39-b51d-2c64f953de6a"
} |
useRedis |
true হিসেবে সেট করা থাকলে, কোটা ব্যাক-এন্ড স্টোরের জন্য প্লাগ-ইন Redis ব্যবহার করে।
আরও বিবরণের জন্য, কোটার জন্য Redis ব্যাক-এন্ড স্টোর ব্যবহার করা দেখুন। |
কোটা কীভাবে গণনা করা হয় তা বোঝা
ডিফল্ট হিসেবে, কোটা ইন্টারভ্যাল "মিনিট" হিসেবে সেট করা থাকলে, মাইক্রোগেটওয়ে প্রতি ৫ সেকেন্ডে Apigee Edge-এর সাথে কোটা কাউন্টার সিঙ্ক করে। ইন্টারভ্যাল "মিনিট"-এর চেয়ে বেশি লেভেলে সেট করা থাকলে, যেমন "সপ্তাহ" বা "মাস", ডিফল্ট রিফ্রেশ পিরিয়ড ১ মিনিট হয়।
এটি মনে রাখা গুরুত্বপূর্ণ যে আপনি Apigee Edge-এ সংজ্ঞায়িত API প্রোডাক্টে কোটা ইন্টারভ্যাল নির্দিষ্ট করেন। কোটা ইন্টারভ্যাল থেকে জানা যায় যে এক মিনিট, এক ঘণ্টা, এক দিন, এক সপ্তাহ বা এক মাসে কতগুলি অনুরোধ করা যায়। যেমন, প্রোডাক্ট 'ক'-এর কোটা ইন্টারভ্যাল হতে পারে প্রতি মিনিটে ১০০টি অনুরোধ এবং প্রোডাক্ট 'খ'-এর কোটা ইন্টারভ্যাল হতে পারে প্রতি ঘণ্টায় ১০,০০০টি অনুরোধ।
Edge Microgateway quota প্লাগ-ইনের YAML
কনফিগারেশন কোটা
ইন্টার্ভাল সেট করে না; বরং, এটি এমন একটি উপায় প্রদান করে যার মাধ্যমে লোকাল Edge Microgateway
ইনস্ট্যান্স Apigee Edge-এর সাথে কোটা
কাউন্ট সিঙ্ক করার ফ্রিকোয়েন্সি অ্যাডজাস্ট করা যায়।
যেমন, ধরে নিন Apigee Edge-এ তিনটি API প্রোডাক্টের সংজ্ঞা দেওয়া আছে এবং সেগুলিতে নিম্নলিখিত কোটা ইন্টারভ্যাল নির্দিষ্ট করা আছে:
- প্রোডাক্ট 'ক'-এর কোটা হল প্রতি মিনিটে ১০০টি অনুরোধ
- প্রোডাক্ট 'খ'-এর কোটা হল প্রতি ঘণ্টায় ৫০০টি অনুরোধ
- প্রোডাক্ট C-এর কোটা হল প্রতি মাসে ১০০০০০০ অনুরোধ
এইসব কোটা সেটিংস মাথায় রেখে, Edge Microgateway quota প্লাগ-ইন
কীভাবে কনফিগার করা উচিত? পেশাদার পদ্ধতি হল, API প্রোডাক্টে কোটা ইন্টারভ্যালের থেকে কম
সিঙ্ক ইন্টারভ্যাল সহ Edge Microgateway কনফিগার করা। যেমন:
quotas:
bufferSize:
hour: 2000
minute: 50
month: 1
default: 10000এই কনফিগারেশনটি আগে বর্ণিত API প্রোডাক্টের জন্য নিম্নলিখিত সিঙ্ক ইন্টারভ্যালকে সংজ্ঞায়িত করে:
- প্রোডাক্ট 'ক' "মিনিট" ইন্টারভ্যালে সেট করা আছে। Edge Microgateway, Edge-এর সাথে সিঙ্ক করবে প্রতি ৫০তম অনুরোধ বা ৫ সেকেন্ডের পরে, যেটি আগে আসবে।
- প্রোডাক্ট 'খ' "ঘণ্টা" ইন্টারভ্যালে সেট করা আছে। Edge Microgateway, Edge-এর সাথে সিঙ্ক করবে প্রতি ২০০০তম অনুরোধ বা ১ মিনিট, যেটি আগে আসবে।
- প্রোডাক্ট 'গ'-এর ইন্টারভ্যাল "মাস" হিসেবে সেট করা আছে। Edge Microgateway, Edge-এর সাথে সিঙ্ক করবে প্রতিটি অনুরোধের পরে অথবা ১ মিনিট পরে, যেটি আগে হবে।
প্রতিবার কোনও মাইক্রোগেটওয়ে ইনস্ট্যান্স Edge-এর সাথে সিঙ্ক করলে, মাইক্রোগেটওয়ের কোটা কাউন্ট, ফিরে পাওয়া কোটা কাউন্টের সমান হিসেবে সেট করা হয়।
bufferSize সেটিংস আপনাকে কোটা কাউন্টার
Edge-এর সাথে কীভাবে সিঙ্ক করা হয় তা অ্যাডজাস্ট করতে দেয়। বেশি ট্রাফিক থাকা পরিস্থিতিতে, bufferSize সেটিংস
ডিফল্ট সময়-ভিত্তিক সিঙ্ক ট্রিগার হওয়ার আগে বাফার কাউন্টারকে সিঙ্ক করার অনুমতি দেয়।
কোটার স্কোপ বোঝা
কোটা গণনা কোনও প্রতিষ্ঠানের এনভায়রনমেন্টের মধ্যে সীমাবদ্ধ থাকে। এই স্কোপ পেতে, Edge Microgateway একটি কোটা শনাক্তকারী তৈরি করে যা "org + env + appName + productName"-এর একটি কম্বিনেশন।
কোটার জন্য Redis ব্যাক-এন্ড স্টোর ব্যবহার করা
কোটার জন্য Redis ব্যাক-এন্ড স্টোর ব্যবহার করতে, Synchronizer ফিচারের জন্য ব্যবহৃত একই কনফিগারেশন ব্যবহার করুন। কোটা স্টোরেজের জন্য Redis ব্যবহার করতে নিম্নলিখিত প্রাথমিক কনফিগারেশন প্রয়োজন:
edgemicro: redisHost: localhost redisPort: 6379 redisDb: 2 redisPassword: codemaster quotas: useRedis: true
edgemicro.redis* প্যারামিটার সম্পর্কে আরও জানতে, সিনক্রোনাইজার ব্যবহার করা দেখুন।
কোটা প্লাগ-ইন পরীক্ষা করা হচ্ছে
কোটা পেরিয়ে গেলে, ক্লায়েন্টকে HTTP 403 স্ট্যাটাস সহ নিম্নলিখিত মেসেজ দেখানো হয়:
{"error": "exceeded quota"}স্পাইক অ্যারেস্ট ও কোটার মধ্যে পার্থক্য কী?
যে কাজ করতে হবে তার জন্য সঠিক টুল বেছে নেওয়া গুরুত্বপূর্ণ। কোটা সংক্রান্ত নীতি, কোনও ক্লায়েন্ট অ্যাপকে এক ঘণ্টা, এক দিন, এক সপ্তাহ বা এক মাস ধরে API-তে জমা দেওয়ার জন্য অনুমোদিত অনুরোধ মেসেজের সংখ্যা কনফিগার করে। কোটা নীতি ক্লায়েন্ট অ্যাপের উপর কনজাম্পশন সীমা প্রয়োগ করে। এটি একটি ডিস্ট্রিবিউট করা কাউন্টার বজায় রাখে যা ইনকামিং অনুরোধের সংখ্যা গণনা করে।
অপারেশনাল ট্রাফিক ম্যানেজমেন্টের পরিবর্তে, ডেভেলপার ও পার্টনারদের সাথে ব্যবসায়িক চুক্তি বা SLA প্রয়োগ করতে কোটা নীতি ব্যবহার করুন। যেমন, পেমেন্ট করা গ্রাহকদের সম্পূর্ণ অ্যাক্সেস দেওয়ার পাশাপাশি, কোটা ব্যবহার করে ফ্রি পরিষেবার ট্রাফিক সীমিত করা হতে পারে।
API ট্রাফিকে হঠাৎ করে হওয়া স্পাইক থেকে রক্ষা করতে স্পাইক অ্যারেস্ট ব্যবহার করুন। সাধারণত, সম্ভাব্য DDoS বা অন্যান্য ক্ষতিকারক আক্রমণ এড়াতে স্পাইক অ্যারেস্ট ব্যবহার করা হয়।