স্পাইক অ্যারেস্ট নীতি

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

এজ UI থেকে স্পাইক অ্যারেস্ট আইকন

স্পাইক অ্যারেস্ট নীতি <Rate> উপাদান দিয়ে ট্রাফিক বৃদ্ধির বিরুদ্ধে সুরক্ষা দেয়। এই উপাদানটি একটি API প্রক্সি দ্বারা প্রসেস করা অনুরোধের সংখ্যাকে থ্রোটল করে এবং একটি ব্যাকএন্ডে পাঠানো হয়, কর্মক্ষমতা ল্যাগ এবং ডাউনটাইম থেকে রক্ষা করে।

<SpikeArrest> উপাদান

স্পাইক অ্যারেস্ট নীতি নির্ধারণ করে।

ডিফল্ট মান নীচে ডিফল্ট নীতি ট্যাব দেখুন
প্রয়োজন? ঐচ্ছিক
টাইপ জটিল বস্তু
অভিভাবক উপাদান n/a
শিশু উপাদান <Identifier>
<MessageWeight>
<Rate> (প্রয়োজনীয়)
<UseEffectiveCount>

সিনট্যাক্স

<SpikeArrest> উপাদান নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<SpikeArrest
  continueOnError="[false|true]"
  enabled="[true|false]"
  name="policy_name"
>
  <DisplayName>display_name</DisplayName>
  <Properties/>
  <Identifier ref="flow_variable"/>
  <MessageWeight ref="flow_variable"/>
  <Rate ref="flow_variable">rate[pm|ps]</Rate>
  <UseEffectiveCount>[false|true]</UseEffectiveCount>
</SpikeArrest>

ডিফল্ট নীতি

আপনি যখন এজ UI-তে আপনার প্রবাহে একটি স্পাইক অ্যারেস্ট নীতি যোগ করেন তখন নিম্নলিখিত উদাহরণটি ডিফল্ট সেটিংস দেখায়:

<SpikeArrest async="false" continueOnError="false" enabled="true" name="Spike-Arrest-1">
  <DisplayName>Spike Arrest-1</DisplayName>
  <Properties/>
  <Identifier ref="request.header.some-header-name"/>
  <MessageWeight ref="request.header.weight"/>
  <Rate>30ps</Rate>
  <UseEffectiveCount>true</UseEffectiveCount>
</SpikeArrest>

This element has the following attributes that are common to all policies:

Attribute Default Required? Description
name N/A Required

The internal name of the policy. The value of the name attribute can contain letters, numbers, spaces, hyphens, underscores, and periods. This value cannot exceed 255 characters.

Optionally, use the <DisplayName> element to label the policy in the management UI proxy editor with a different, natural-language name.

continueOnError false Optional Set to "false" to return an error when a policy fails. This is expected behavior for most policies. Set to "true" to have flow execution continue even after a policy fails.
enabled true Optional Set to "true" to enforce the policy. Set to "false" to "turn off" the policy. The policy will not be enforced even if it remains attached to a flow.
async   false Deprecated This attribute is deprecated.

উদাহরণ

নিম্নলিখিত উদাহরণগুলি কিছু উপায় দেখায় যাতে আপনি স্পাইক অ্যারেস্ট নীতি ব্যবহার করতে পারেন:

উদাহরণ 1

নিম্নলিখিত উদাহরণটি প্রতি সেকেন্ডে পাঁচটি হার সেট করে:

<SpikeArrest name="Spike-Arrest-1">
  <Rate>5ps</Rate>
</SpikeArrest>

নীতিটি প্রতি 200 মিলিসেকেন্ডে (1000/5) অনুমোদিত একটি অনুরোধের হারকে মসৃণ করে।

উদাহরণ 2

নিম্নলিখিত উদাহরণটি প্রতি মিনিটে 300 এ হার সেট করে:

<SpikeArrest async="false" continueOnError="false" enabled="true" name="SpikeArreast">
  <DisplayName>SpikeArreast</DisplayName>
  <Rate>300pm</Rate>
</SpikeArrest>

কার্যকরী হার হল 300pm, মানে প্রতি 200 মিলিসেকেন্ডে একটি নতুন টোকেন বালতিতে যোগ করা হয়। বালতির আকার সর্বদা messagesPerPeriod . অতএব, 300-এর একটি messagesPerPeriod সহ, বালতির আকার হল 30 টোকেন৷

উদাহরণ 3

নিম্নলিখিত উদাহরণটি প্রতি মিনিটে 12 অনুরোধ সীমাবদ্ধ করে (প্রতি পাঁচ সেকেন্ডে একটি অনুরোধ অনুমোদিত, বা 60/12):

<SpikeArrest name="Spike-Arrest-1">
  <Rate>12pm</Rate>
  <Identifier ref="client_id" />
  <MessageWeight ref="request.header.weight" />
</SpikeArrest>

উপরন্তু, <MessageWeight> উপাদানটি একটি কাস্টম মান ( weight হেডার) গ্রহণ করে যা নির্দিষ্ট অ্যাপ বা ক্লায়েন্টদের জন্য বার্তা ওজন সামঞ্জস্য করে। এটি <Identifier> এলিমেন্টের সাথে চিহ্নিত সত্তাগুলির জন্য থ্রোটলিং এর উপর অতিরিক্ত নিয়ন্ত্রণ প্রদান করে।

উদাহরণ 4

নিম্নলিখিত উদাহরণ স্পাইক অ্যারেস্টকে অনুরোধের মাধ্যমে একটি রানটাইম মান সেট করার নির্দেশ দেয় যা request.header.runtime_rate ফ্লো ভেরিয়েবল হিসাবে পাস করা হয়েছে:

<SpikeArrest name="Spike-Arrest-1">
  <Rate ref="request.header.runtime_rate" />
</SpikeArrest>

ফ্লো ভেরিয়েবলের মান অবশ্যই int pm বা int ps আকারে হতে হবে।

এই উদাহরণ চেষ্টা করার জন্য, নিম্নলিখিত মত একটি অনুরোধ চালান:

curl http://myorg-myenv.apigee.net/price -H 'runtime_rate:30ps'

শিশু উপাদান রেফারেন্স

এই বিভাগে <SpikeArrest> এর চাইল্ড উপাদানগুলি বর্ণনা করা হয়েছে।

<DisplayName>

Use in addition to the name attribute to label the policy in the management UI proxy editor with a different, more natural-sounding name.

The <DisplayName> element is common to all policies.

Default Value n/a
Required? Optional. If you omit <DisplayName>, the value of the policy's name attribute is used
Type String
Parent Element <PolicyElement>
Child Elements None

The <DisplayName> element uses the following syntax:

Syntax

<PolicyElement>
  <DisplayName>policy_display_name</DisplayName>
  ...
</PolicyElement>

Example

<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

The <DisplayName> element has no attributes or child elements.

<Identifier>

ক্লায়েন্টের উপর ভিত্তি করে স্পাইক অ্যারেস্ট নীতি প্রয়োগ করার জন্য অনুরোধগুলিকে কীভাবে গোষ্ঠীভুক্ত করবেন তা আপনাকে চয়ন করতে দেয়। উদাহরণস্বরূপ, আপনি বিকাশকারী আইডি দ্বারা অনুরোধগুলিকে গোষ্ঠীভুক্ত করতে পারেন, এই ক্ষেত্রে প্রতিটি বিকাশকারীর অনুরোধগুলি তাদের নিজস্ব স্পাইক অ্যারেস্ট রেট হিসাবে গণনা করা হবে এবং প্রক্সির সমস্ত অনুরোধ নয়৷

অনুরোধ থ্রটলিং এর উপর আরো সূক্ষ্ম নিয়ন্ত্রণের জন্য <MessageWeight> উপাদানের সাথে ব্যবহার করুন।

আপনি যদি <Identifier> উপাদানটি খালি রাখেন, তাহলে সেই API প্রক্সিতে সমস্ত অনুরোধের জন্য একটি হারের সীমা বলবৎ করা হয়।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ স্ট্রিং
অভিভাবক উপাদান <SpikeArrest>
শিশু উপাদান কোনোটিই নয়

সিনট্যাক্স

<SpikeArrest
  continueOnError="[false|true]"
  enabled="[true|false]"
  name="policy_name"
>
  <Identifier ref="flow_variable"/>
</SpikeArrest>
        

উদাহরণ 1

নিম্নলিখিত উদাহরণটি বিকাশকারী আইডি প্রতি স্পাইক অ্যারেস্ট নীতি প্রযোজ্য:

<SpikeArrest name="Spike-Arrest-1">
  <Identifier ref="developer.id"/>
  <Rate>42pm</Rate/>
</SpikeArrest>

নিম্নলিখিত সারণী <Identifier> এর বৈশিষ্ট্যগুলি বর্ণনা করে:

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি
ref স্পাইক অ্যারেস্ট গ্রুপ ইনকামিং অনুরোধের মাধ্যমে ভেরিয়েবল সনাক্ত করে। আপনি একটি অনন্য ক্লায়েন্ট নির্দেশ করতে যেকোন ফ্লো ভেরিয়েবল ব্যবহার করতে পারেন, যেমন VerifyAPIKey নীতিতে উপলব্ধ। এছাড়াও আপনি JavaScript নীতি বা AssignMessage নীতি ব্যবহার করে কাস্টম ভেরিয়েবল সেট করতে পারেন। n/a প্রয়োজন

এই উপাদানটি নিম্নলিখিত Apigee কমিউনিটি পোস্টেও আলোচনা করা হয়েছে: http://community.apigee.com/questions/2807/how-does-the-edge-quota-policy-work-when-no-identi.html

<MessageWeight>

প্রতিটি বার্তার জন্য সংজ্ঞায়িত ওজন নির্দিষ্ট করে। মেসেজের ওজন স্পাইক অ্যারেস্ট রেট গণনার উপর একটি একক অনুরোধের প্রভাবকে পরিবর্তন করে। বার্তার ওজন যেকোনো ফ্লো ভেরিয়েবল হতে পারে, যেমন একটি HTTP হেডার, ক্যোয়ারী প্যারামিটার, ফর্ম প্যারামিটার, বা মেসেজের বডি কন্টেন্ট। এছাড়াও আপনি JavaScript নীতি বা AssignMessage নীতি ব্যবহার করে কাস্টম ভেরিয়েবল ব্যবহার করতে পারেন।

নির্দিষ্ট ক্লায়েন্ট বা অ্যাপ্লিকেশানগুলির দ্বারা আরও থ্রোটল অনুরোধের জন্য <Identifier> এর সাথে ব্যবহার করুন।

উদাহরণস্বরূপ, যদি স্পাইক অ্যারেস্ট <Rate> হয় 10pm , এবং একটি অ্যাপ 2 এর ওজন সহ অনুরোধ জমা দেয়, তাহলে সেই ক্লায়েন্টের কাছ থেকে প্রতি মিনিটে শুধুমাত্র পাঁচটি বার্তা অনুমোদিত কারণ প্রতিটি অনুরোধ 2 হিসাবে গণনা করা হয়।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ পূর্ণসংখ্যা
অভিভাবক উপাদান <SpikeArrest>
শিশু উপাদান কোনোটিই নয়

সিনট্যাক্স

<SpikeArrest
  continueOnError="[false|true]"
  enabled="[true|false]"
  name="policy_name"
>
  <MessageWeight ref="flow_variable"/>
</SpikeArrest>

উদাহরণ 1

নিম্নলিখিত উদাহরণটি প্রতি মিনিটে 12 অনুরোধ সীমাবদ্ধ করে (প্রতি পাঁচ সেকেন্ডে একটি অনুরোধ অনুমোদিত, বা 60/12):

<SpikeArrest name="Spike-Arrest-1">
  <Rate>12pm</Rate>
  <Identifier ref="client_id" />
  <MessageWeight ref="request.header.weight" />
</SpikeArrest>

এই উদাহরণে, <MessageWeight> একটি কাস্টম মান (অনুরোধে weight শিরোনাম) গ্রহণ করে যা নির্দিষ্ট ক্লায়েন্টদের জন্য বার্তা ওজন সামঞ্জস্য করে। এটি <Identifier> এলিমেন্টের সাথে চিহ্নিত সত্তাগুলির জন্য থ্রোটলিং এর উপর অতিরিক্ত নিয়ন্ত্রণ প্রদান করে।

নিম্নলিখিত সারণী <MessageWeight> -এর গুণাবলী বর্ণনা করে:

বৈশিষ্ট্য বর্ণনা উপস্থিতি ডিফল্ট
ref নির্দিষ্ট ক্লায়েন্টের জন্য বার্তা ওজন ধারণ করে ফ্লো ভেরিয়েবল সনাক্ত করে। এটি যেকোনো ফ্লো ভেরিয়েবল হতে পারে, যেমন একটি HTTP ক্যোয়ারী প্যারাম, হেডার, বা মেসেজ বডি কন্টেন্ট। আরও তথ্যের জন্য, ফ্লো ভেরিয়েবল রেফারেন্স দেখুন। এছাড়াও আপনি JavaScript নীতি বা AssignMessage নীতি ব্যবহার করে কাস্টম ভেরিয়েবল সেট করতে পারেন। প্রয়োজন N/A

<Rate>

প্রতি মিনিটে বা প্রতি সেকেন্ডের ব্যবধানে অনুমোদিত অনুরোধের সংখ্যা সেট করে ট্র্যাফিক স্পাইক (বা বিস্ফোরণ) সীমিত করার হার নির্দিষ্ট করে৷ আপনি ক্লায়েন্টের কাছ থেকে মান গ্রহণ করে রানটাইমে ট্র্যাফিককে মসৃণভাবে থ্রোটল করতে <Identifier> এবং <MessageWeight> এর সাথে একত্রে এই উপাদানটি ব্যবহার করতে পারেন।

ডিফল্ট মান n/a
প্রয়োজন? প্রয়োজন
টাইপ পূর্ণসংখ্যা
অভিভাবক উপাদান <SpikeArrest>
শিশু উপাদান কোনোটিই নয়

সিনট্যাক্স

আপনি নিম্নলিখিত উপায়গুলির মধ্যে একটিতে হার নির্দিষ্ট করতে পারেন:

  • একটি স্ট্যাটিক রেট যা আপনি <Rate> উপাদানের বডি হিসেবে নির্দিষ্ট করেন
  • একটি পরিবর্তনশীল মান, যা ক্লায়েন্ট দ্বারা পাস করা যেতে পারে; ref অ্যাট্রিবিউট ব্যবহার করে ফ্লো ভেরিয়েবলের নাম শনাক্ত করুন
<SpikeArrest
  continueOnError="[false|true]"
  enabled="[true|false]"
  name="policy_name"
>
  <Rate ref="flow_variable">rate[pm|ps]</Rate>
</SpikeArrest>

বৈধ হারের মানগুলি (হয় একটি পরিবর্তনশীল মান হিসাবে বা উপাদানের মূল অংশে সংজ্ঞায়িত) নিম্নলিখিত বিন্যাসের সাথে সঙ্গতিপূর্ণ হতে হবে:

  • int ps (প্রতি সেকেন্ডে অনুরোধের সংখ্যা, মিলিসেকেন্ডের ব্যবধানে মসৃণ)
  • int pm (প্রতি মিনিটে অনুরোধের সংখ্যা, সেকেন্ডের ব্যবধানে মসৃণ)

int এর মান অবশ্যই একটি ধনাত্মক, অ-শূন্য পূর্ণসংখ্যা হতে হবে।

উদাহরণ 1

নিম্নলিখিত উদাহরণটি প্রতি সেকেন্ডে পাঁচটি অনুরোধের হার সেট করে:

<SpikeArrest name="Spike-Arrest-1">
  <Rate>5ps</Rate>
</SpikeArrest>

নীতিটি প্রতি 200 মিলিসেকেন্ডে (1000/5) অনুমোদিত একটি অনুরোধের হারকে মসৃণ করে।

উদাহরণ 2

নিম্নলিখিত উদাহরণটি প্রতি মিনিটে 12টি অনুরোধের হার সেট করে:

<SpikeArrest async="false" continueOnError="false" enabled="true" name="SpikeArreast">
  <DisplayName>SpikeArreast</DisplayName>
  <Rate>300pm</Rate>
</SpikeArrest>

এই উদাহরণ নীতি প্রতি পাঁচ সেকেন্ডে একটি অনুরোধের হারকে মসৃণ করে (60/12)।

নিম্নলিখিত সারণী <Rate> এর বৈশিষ্ট্যগুলি বর্ণনা করে:

বৈশিষ্ট্য বর্ণনা উপস্থিতি ডিফল্ট
ref একটি ফ্লো ভেরিয়েবল সনাক্ত করে যা হার নির্দিষ্ট করে। এটি যেকোন ফ্লো ভেরিয়েবল হতে পারে, যেমন একটি HTTP ক্যোয়ারী প্যারামিটার, হেডার, বা মেসেজ বডি কন্টেন্ট, অথবা একটি মান যেমন একটি KVM। আরও তথ্যের জন্য, ফ্লো ভেরিয়েবল রেফারেন্স দেখুন।

এছাড়াও আপনি JavaScript নীতি বা AssignMessage নীতি ব্যবহার করে কাস্টম ভেরিয়েবল ব্যবহার করতে পারেন।

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

যেমন:

<Rate ref="request.header.custom_rate">1pm</Rate>

এই উদাহরণে, যদি ক্লায়েন্ট একটি "কাস্টম_রেট" শিরোনাম পাস না করে, তাহলে API প্রক্সির জন্য রেট হল সমস্ত ক্লায়েন্টের জন্য প্রতি মিনিটে 1 অনুরোধ৷ যদি ক্লায়েন্ট একটি "কাস্টম_রেট" শিরোনাম পাস করে, তাহলে প্রক্সিতে থাকা সমস্ত ক্লায়েন্টের জন্য হারের সীমা প্রতি সেকেন্ডে 10টি অনুরোধ হয়ে যায় — যতক্ষণ না "কাস্টম_রেট" শিরোনাম ছাড়া একটি অনুরোধ পাঠানো হয়।

আপনি বিভিন্ন ধরনের ক্লায়েন্টের জন্য কাস্টম হার প্রয়োগ করার জন্য অনুরোধগুলিকে গ্রুপ করতে <Identifier> ব্যবহার করতে পারেন।

আপনি যদি ref জন্য একটি মান নির্দিষ্ট করেন কিন্তু <Rate> উপাদানের মূল অংশে হার সেট না করেন এবং ক্লায়েন্ট একটি মান পাস না করে, তাহলে স্পাইক অ্যারেস্ট নীতি একটি ত্রুটি ছুড়ে দেয়।

ঐচ্ছিক n/a

<UseEffectiveCount>

অটো-স্কেলিং গ্রুপ ব্যবহার করার সময় আপনার স্পাইক অ্যারেস্ট গণনা মেসেজ প্রসেসর (এমপি) জুড়ে বিতরণ করে।

সিনট্যাক্স

<SpikeArrest
  continueOnError="[false|true]"
  enabled="[true|false]"
  name="policy_name"
>
  <UseEffectiveCount>[false|true]</UseEffectiveCount>
</SpikeArrest>

উদাহরণ 1

নিম্নলিখিত উদাহরণটি <UseEffectiveCount> কে সত্যে সেট করে:

<SpikeArrest name='Spike-Arrest-1'>
  <Rate>40ps</Rate>
  <UseEffectiveCount>true</UseEffectiveCount>
</SpikeArrest>

<UseEffectiveCount> উপাদানটি ঐচ্ছিক। আপনার স্পাইক অ্যারেস্ট নীতি থেকে উপাদানটি বাদ দিলে ডিফল্ট মানটি false

ডিফল্ট মান মিথ্যা
প্রয়োজন? ঐচ্ছিক
টাইপ বুলিয়ান
অভিভাবক উপাদান <SpikeArrest>
শিশু উপাদান কোনোটিই নয়

নিচের টেবিলটি <UseEffectiveCount> উপাদানের বৈশিষ্ট্য বর্ণনা করে:

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি
ref <UseEffectiveCount> এর মান ধারণকারী ভেরিয়েবল সনাক্ত করে। এটি যেকোনো ফ্লো ভেরিয়েবল হতে পারে, যেমন একটি HTTP ক্যোয়ারী প্যারাম, হেডার, বা মেসেজ বডি কন্টেন্ট। আরও তথ্যের জন্য, ফ্লো ভেরিয়েবল রেফারেন্স দেখুন। এছাড়াও আপনি JavaScript নীতি বা AssignMessage নীতি ব্যবহার করে কাস্টম ভেরিয়েবল সেট করতে পারেন। n/a ঐচ্ছিক

<UseEffectiveCount> এর প্রভাব এর মানের উপর নির্ভর করে:

  • true : একজন এমপির স্পাইক রেট সীমা হল একই পডে বর্তমান এমপিদের সংখ্যা দ্বারা ভাগ করা <Rate> । সমষ্টিগত সীমা হল <Rate> এর মান। যখন এমপিদের গতিশীলভাবে যুক্ত করা হয় (বা সরানো হয়), তখন তাদের স্বতন্ত্র স্পাইক রেট সীমা বাড়বে (বা কমবে), কিন্তু সামগ্রিক সীমা একই থাকবে।
  • false : প্রতিটি এমপির স্পাইক রেট লিমিট হল তার <Rate> এর মান। সমষ্টিগত সীমা হল সকল এমপির হারের সমষ্টি। যখন এমপিদের যোগ করা হয় (বা সরানো হয়), তখন তাদের স্বতন্ত্র স্পাইক রেট সীমা একই থাকবে, কিন্তু সামগ্রিক সীমা বাড়বে (বা কমবে)।

স্পাইকঅ্যারেস্ট নীতি একটি " টোকেন বাকেট " অ্যালগরিদম ব্যবহার করে যা ট্র্যাফিক স্পাইকগুলিকে মসৃণ করে রেট সীমাকে বিভক্ত করে যা আপনি ছোট ব্যবধানে নির্দিষ্ট করেন৷ এই পদ্ধতির একটি অপূর্ণতা হল যে স্বল্প সময়ের ব্যবধানে আসা একাধিক বৈধ অনুরোধ সম্ভাব্যভাবে অস্বীকার করা যেতে পারে।

উদাহরণস্বরূপ, বলুন আপনি 30pm (প্রতি মিনিটে 30 অনুরোধ) একটি হার লিখুন। পরীক্ষায়, আপনি ভাবতে পারেন যে আপনি 1 সেকেন্ডে 30টি অনুরোধ পাঠাতে পারেন, যতক্ষণ না সেগুলি এক মিনিটের মধ্যে আসে। কিন্তু নীতিটি সেটিংটি কীভাবে প্রয়োগ করে তা নয়। আপনি যদি এটি সম্পর্কে চিন্তা করেন, 1-সেকেন্ড সময়ের মধ্যে 30টি অনুরোধ কিছু পরিবেশে একটি ছোট স্পাইক হিসাবে বিবেচিত হতে পারে।

  • প্রতি মিনিটের হার সেকেন্ডের ব্যবধানে অনুমোদিত সম্পূর্ণ অনুরোধে মসৃণ হয়ে যায়।

    উদাহরণস্বরূপ, 30pm এভাবে মসৃণ হয়:
    60 সেকেন্ড (1 মিনিট) / 30pm = 2-সেকেন্ডের ব্যবধান, বা প্রতি 2 সেকেন্ডে 1টি অনুরোধ অনুমোদিত৷ 2 সেকেন্ডের মধ্যে একটি দ্বিতীয় অনুরোধ ব্যর্থ হবে। এছাড়াও, এক মিনিটের মধ্যে একটি 31তম অনুরোধ ব্যর্থ হবে।

  • প্রতি-সেকেন্ডের হার মিলিসেকেন্ডের ব্যবধানে অনুমোদিত সম্পূর্ণ অনুরোধে মসৃণ হয়ে যায়।

    উদাহরণস্বরূপ, 10ps এভাবে মসৃণ হয়:
    1000 মিলিসেকেন্ড (1 সেকেন্ড) / 10ps = 100-মিলিসেকেন্ড ব্যবধান, বা প্রতি 100 মিলিসেকেন্ডে 1টি অনুরোধ অনুমোদিত৷ 100ms এর মধ্যে একটি দ্বিতীয় অনুরোধ ব্যর্থ হবে। এছাড়াও, এক সেকেন্ডের মধ্যে একটি 11 তম অনুরোধ ব্যর্থ হবে।

নিম্নলিখিত টেবিলটি প্রতিটি এমপির কার্যকর হার সীমার উপর <UseEffectiveCount> এর প্রভাব দেখায়:

<UseEffectiveCount> এর মান
false false false true true true
# সংসদ সদস্য 8 4 2 8 4 2
<Rate> এর মান 10 10 10 40 40 40
এমপি প্রতি কার্যকর হার 10 10 10 5 10 20
সামগ্রিক সীমা 80 40 20 40* 40* 40*
* <Rate> এর মতো।

এই উদাহরণে, লক্ষ্য করুন যে যখন এমপির সংখ্যা 4 থেকে কমে 2 হয় এবং <UseEffectiveCount> false হয়, তখন প্রতি এমপি কার্যকরী হার একই থাকে (10 এ)। কিন্তু যখন <UseEffectiveCount> true হয়, এমপির সংখ্যা 4 থেকে 2 তে কমে গেলে প্রতি এমপি কার্যকরী হার 10 থেকে 20 হয়ে যায়।

ফ্লো ভেরিয়েবল

যখন একটি স্পাইক অ্যারেস্ট নীতি কার্যকর হয়, তখন নিম্নলিখিত ফ্লো ভেরিয়েবলটি পপুলেট করা হয়:

পরিবর্তনশীল টাইপ অনুমতি বর্ণনা
ratelimit. policy_name .failed বুলিয়ান শুধুমাত্র পঠনযোগ্য নীতি ব্যর্থ হয়েছে কিনা তা নির্দেশ করে ( true বা false )।

আরও তথ্যের জন্য, ফ্লো ভেরিয়েবল রেফারেন্স দেখুন।

ত্রুটি উল্লেখ

এই বিভাগটি ফল্ট কোড এবং ত্রুটি বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷

রানটাইম ত্রুটি

নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷

ফল্ট কোড HTTP স্থিতি কারণ ঠিক করুন
policies.ratelimit.FailedToResolveSpikeArrestRate 500 এই ত্রুটিটি ঘটবে যদি <Rate> উপাদানের মধ্যে রেট সেটিং ধারণকারী ভেরিয়েবলের রেফারেন্স স্পাইক অ্যারেস্ট নীতির মধ্যে একটি মান সমাধান করা না যায়। এই উপাদানটি বাধ্যতামূলক এবং int pm বা int ps আকারে স্পাইক গ্রেফতারের হার নির্দিষ্ট করতে ব্যবহৃত হয়।
policies.ratelimit.InvalidMessageWeight 500 একটি ফ্লো ভেরিয়েবলের মাধ্যমে <MessageWeight> উপাদানের জন্য নির্দিষ্ট করা মানটি অবৈধ (একটি অ-পূর্ণসংখ্যা মান) হলে এই ত্রুটিটি ঘটে।
policies.ratelimit.SpikeArrestViolation 429

হার সীমা অতিক্রম করা হয়েছে.

স্থাপনার ত্রুটি

আপনি যখন এই নীতি সম্বলিত একটি প্রক্সি স্থাপন করেন তখন এই ত্রুটিগুলি ঘটতে পারে৷

ত্রুটির নাম কারণ ঠিক করুন
InvalidAllowedRate যদি স্পাইক অ্যারেস্ট নীতির <Rate> উপাদানে নির্দিষ্ট করা স্পাইক অ্যারেস্ট রেট একটি পূর্ণসংখ্যা না হয় বা যদি প্রত্যয় হিসাবে হারে ps বা pm না থাকে, তাহলে API প্রক্সির স্থাপনা ব্যর্থ হয়।

ফল্ট ভেরিয়েবল

রানটাইম ত্রুটি ঘটলে এই ভেরিয়েবলগুলি সেট করা হয়। আরও তথ্যের জন্য, নীতি ত্রুটি সম্পর্কে আপনার যা জানা দরকার তা দেখুন।

ভেরিয়েবল যেখানে উদাহরণ
fault.name=" fault_name " fault_name হল ফল্টের নাম, যা উপরে রানটাইম ত্রুটির সারণীতে তালিকাভুক্ত করা হয়েছে। ফল্ট নামটি ফল্ট কোডের শেষ অংশ। fault.name Matches "SpikeArrestViolation"
ratelimit. policy_name .failed policy_name হল সেই নীতির ব্যবহারকারী-নির্দিষ্ট নাম যা ত্রুটিটি ফেলেছে। ratelimit.SA-SpikeArrestPolicy.failed = true

উদাহরণ ত্রুটি প্রতিক্রিয়া

নীচে একটি উদাহরণ ত্রুটি প্রতিক্রিয়া দেখানো হয়েছে:

{  
   "fault":{  
      "detail":{  
         "errorcode":"policies.ratelimit.SpikeArrestViolation"
      },
      "faultstring":"Spike arrest violation. Allowed rate : 10ps"
   }
}

উদাহরণ দোষ নিয়ম

SpikeArrestViolation লঙ্ঘন ফল্ট পরিচালনা করার জন্য একটি উদাহরণ ফল্ট নিয়ম নীচে দেখানো হয়েছে:

<FaultRules>
    <FaultRule name="Spike Arrest Errors">
        <Step>
            <Name>JavaScript-1</Name>
            <Condition>(fault.name Matches "SpikeArrestViolation") </Condition>
        </Step>
        <Condition>ratelimit.Spike-Arrest-1.failed=true</Condition>
    </FaultRule>
</FaultRules>

কোটা বা স্পাইক অ্যারেস্ট নীতি দ্বারা নির্ধারিত হারের সীমা অতিক্রম করার জন্য বর্তমান HTTP স্ট্যাটাস কোড হল 429 (অনেক অনুরোধ)। HTTP স্থিতি কোডকে 500 (অভ্যন্তরীণ সার্ভার ত্রুটি) এ পরিবর্তন করতে, আপডেট সংস্থা বৈশিষ্ট্য API ব্যবহার করে features.isHTTPStatusTooManyRequestEnabled .isHTTPStatusTooManyRequestEnabled প্রপার্টিটিকে false সেট করুন।

যেমন:

curl -u email:password -X POST -H "Content-type:application/xml" http://api.enterprise.apigee.com/v1/organizations/myorg -d \
"<Organization type="trial" name="MyOrganization">
    <Properties>
        <Property name="features.isHTTPStatusTooManyRequestEnabled">true</Property>
        . . .
    </Properties>
</Organization>"

স্কিমাস

প্রতিটি নীতির ধরন একটি XML স্কিমা ( .xsd ) দ্বারা সংজ্ঞায়িত করা হয়। রেফারেন্সের জন্য, নীতি স্কিমা GitHub এ উপলব্ধ।

সম্পর্কিত বিষয়