درحال مشاهده اسناد Apigee Edge هستید.
به
اسناد Apigee X بروید. اطلاعات
خطمشی «مهار جهش» با عنصر <Rate> دربرابر جهشهای ترافیک محافظت میکند. این عنصر تعداد درخواستهای پردازششده توسط پراکسی API و ارسالشده به زیرینه را محدود میکند و از تأخیر در عملکرد و زمان خرابی محافظت میکند.
<SpikeArrest> عنصر
خطمشی «مهار جهش» را تعریف میکند.
| مقدار پیشفرض | برگه خطمشی پیشفرض در زیر را ببینید |
| الزامی است؟ | اختیاری |
| تایپ کردن | شیء Complex |
| عنصر والد | نامربوط |
| عناصر فرزند |
<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>
خطمشی پیشفرض
مثال زیر تنظیمات پیشفرض را هنگام افزودن خطمشی «مهار جهش» به جریان در «واسط کاربر Edge» نشان میدهد:
<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 Optionally, use the |
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. |
مثالها
مثالهای زیر برخیاز روشهایی را نشان میدهد که میتوانید از خطمشی «مهار جهش» استفاده کنید:
مثال ۱
مثال زیر نرخ را روی پنج در ثانیه تنظیم میکند:
<SpikeArrest name="Spike-Arrest-1"> <Rate>5ps</Rate> </SpikeArrest>
این خطمشی نرخ را به یک درخواست مجاز در هر ۲۰۰ میلیثانیه (۱۰۰۰/۵) هموار میکند.
مثال ۲
مثال زیر نرخ را روی ۳۰۰ در دقیقه تنظیم میکند:
<SpikeArrest async="false" continueOnError="false" enabled="true" name="SpikeArreast"> <DisplayName>SpikeArreast</DisplayName> <Rate>300pm</Rate> </SpikeArrest>
نرخ مؤثر ۳۰۰ در دقیقه است، یعنی هر ۲۰۰ میلیثانیه یک نشان جدید به ظرف اضافه میشود. اندازه دستهبندی همیشه بهگونهای پیکربندی میشود که ۱۰٪ از messagesPerPeriod باشد. بنابراین، با messagesPerPeriod برابر با ۳۰۰، اندازه سطل ۳۰ واحد است.
مثال ۳
مثال زیر درخواستها را به ۱۲ درخواست در دقیقه محدود میکند (هر پنج ثانیه یک درخواست مجاز است، یا ۶۰/۱۲):
<SpikeArrest name="Spike-Arrest-1"> <Rate>12pm</Rate> <Identifier ref="client_id" /> <MessageWeight ref="request.header.weight" /> </SpikeArrest>
علاوهبراین، عنصر <MessageWeight> مقدار سفارشی (سرایند weight) را میپذیرد که وزن پیام را برای برنامهها یا مشتریان خاص تنظیم میکند. این
کنترل بیشتری بر محدود کردن نهادهایی که با عنصر
<Identifier> شناسایی میشوند ارائه میدهد.
مثال ۴
مثال زیر به «مهار جهش» دستور میدهد که مقدار زمان اجرایی را که ازطریق درخواست تنظیم شده است جستجو کند و بهعنوان متغیر جاری request.header.runtime_rate ارسال شود:
<SpikeArrest name="Spike-Arrest-1"> <Rate ref="request.header.runtime_rate" /> </SpikeArrest>
مقدار متغیر جریان باید بهصورت intpm یا
intps باشد.
برای امتحان کردن این مثال، درخواستی مانند درخواست زیر اجرا کنید:
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 اعمال میشود.
| مقدار پیشفرض | نامربوط |
| الزامی است؟ | اختیاری |
| تایپ کردن | رشته |
| عنصر والد |
<SpikeArrest>
|
| عناصر فرزند | خالی |
نحو
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Identifier ref="flow_variable"/> </SpikeArrest>
مثال ۱
مثال زیر خطمشی «مهار جهش» را برای هر شناسه توسعهدهنده اعمال میکند:
<SpikeArrest name="Spike-Arrest-1"> <Identifier ref="developer.id"/> <Rate>42pm</Rate/> </SpikeArrest>
جدول زیر مشخصههای <Identifier> را شرح میدهد:
| مشخصه | شرح | پیشفرض | حضور |
|---|---|---|---|
ref |
متغیری را که براساس آن «مهار جهش» درخواستهای ورودی را گروهبندی میکند شناسایی میکند. میتوانید از هر متغیر جاری برای نشان دادن مشتری منحصربهفرد استفاده کنید، مثل متغیرهای دردسترس در خطمشی VerifyAPIKey. همچنین میتوانید بااستفاده از خطمشی جاوا اسکریپت یا خطمشی AssignMessage متغیرهای سفارشی تنظیم کنید. | نامربوط | الزامی |
این عنصر در پست «انجمن Apigee» زیر نیز مورد بحث قرار گرفته است: شناسه سهمیه در خطمشیهای مختلف.
<MessageWeight>
وزن تعریفشده برای هر پیام را مشخص میکند. وزن پیام تأثیر یک درخواست واحد بر محاسبه نرخ «مهار جهش» را تغییر میدهد. وزن پیام میتواند هر متغیر جریانی باشد، مثل سرایند HTTP، پارامتر پُرسمان، پارامتر فرم، یا محتوای بدنه پیام. همچنین میتوانید بااستفاده از خطمشی جاوا اسکریپت یا خطمشی AssignMessage از متغیرهای سفارشی استفاده کنید.
برای محدود کردن بیشتر درخواستها براساس
کارخواهها یا برنامههای خاص، همراه با <Identifier> استفاده کنید.
برای مثال، اگر «مهار کردن جهش» <Rate> روی 10pm تنظیم شده باشد و برنامهای درخواستهایی با وزن 2 ارسال کند، در اینصورت فقط پنج پیام در دقیقه از آن کارخواه مجاز است زیرا هر درخواست بهعنوان ۲ محاسبه میشود.
| مقدار پیشفرض | نامربوط |
| الزامی است؟ | اختیاری |
| تایپ کردن | عدد صحیح |
| عنصر والد |
<SpikeArrest>
|
| عناصر فرزند | خالی |
نحو
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <MessageWeight ref="flow_variable"/> </SpikeArrest>
مثال ۱
مثال زیر درخواستها را به ۱۲ درخواست در دقیقه محدود میکند (هر پنج ثانیه یک درخواست مجاز است، یا ۶۰/۱۲):
<SpikeArrest name="Spike-Arrest-1"> <Rate>12pm</Rate> <Identifier ref="client_id" /> <MessageWeight ref="request.header.weight" /> </SpikeArrest>
در این مثال، <MessageWeight> مقدار سفارشی (سرصفحه weight
در درخواست) را میپذیرد که وزن پیام را برای مشتریان خاص تنظیم میکند. این
کنترل بیشتری بر محدود کردن نهادهایی که با عنصر
<Identifier> شناسایی میشوند ارائه میدهد.
جدول زیر مشخصههای <MessageWeight> را شرح میدهد:
| مشخصه | شرح | حضور | پیشفرض |
|---|---|---|---|
ref |
متغیر جریانی را که حاوی وزن پیام برای مشتری خاص است شناسایی میکند. این میتواند هر متغیر جاریسازی باشد، مثل پارامتر پُرسمان HTTP، سرایند، یا محتوای بدنه پیام. برای اطلاعات بیشتر، به مرجع متغیرهای جریان مراجعه کنید. همچنین میتوانید متغیرهای سفارشی را بااستفاده از خطمشی جاوا اسکریپت یا خطمشی «تخصیص پیام» تنظیم کنید. | الزامی | موجود نیست |
<Rate>
نرخی را که براساس آن باید جهشهای ترافیک (یا انفجارها) را محدود کرد مشخص میکند. این کار با تنظیم تعداد درخواستهایی که در فواصل زمانی یک دقیقه یا یک ثانیه مجاز هستند انجام میشود. همچنین میتوانید از این عنصر در
ترکیب با <Identifier> و <MessageWeight> برای
کنترل روان ترافیک در زمان اجرا با پذیرفتن مقادیر از مشتری استفاده کنید.
| مقدار پیشفرض | نامربوط |
| الزامی است؟ | الزامی |
| تایپ کردن | عدد صحیح |
| عنصر والد |
<SpikeArrest>
|
| عناصر فرزند | خالی |
نحو
میتوانید نرخها را به یکی از روشهای زیر مشخص کنید:
- نرخ ثابتی که بهعنوان بدنه عنصر
<Rate>مشخص میکنید - مقدار متغیر که میتواند توسط کارخواه منتقل شود؛ نام متغیر جاری را بااستفاده از
مشخصه
refشناسایی کنید
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Rate ref="flow_variable">rate[pm|ps]</Rate> </SpikeArrest>
مقادیر نرخ معتبر (که بهعنوان مقدار متغیر یا در بدنه عنصر تعریف شدهاند) باید از قالب زیر پیروی کنند:
intps(تعداد درخواستها در ثانیه، هموارشده به بازههای میلیثانیه)-
intpm(تعداد درخواستها در دقیقه، هموارشده به بازههای چند ثانیهای)
مقدار int باید عدد صحیح مثبت غیرصفر باشد.
مثال ۱
مثال زیر نرخ را روی پنج درخواست در ثانیه تنظیم میکند:
<SpikeArrest name="Spike-Arrest-1"> <Rate>5ps</Rate> </SpikeArrest>
این خطمشی نرخ را به یک درخواست مجاز در هر ۲۰۰ میلیثانیه (۱۰۰۰/۵) هموار میکند.
مثال ۲
مثال زیر نرخ را روی ۱۲ درخواست در دقیقه تنظیم میکند:
<SpikeArrest async="false" continueOnError="false" enabled="true" name="SpikeArreast"> <DisplayName>SpikeArreast</DisplayName> <Rate>300pm</Rate> </SpikeArrest>
این خطمشی نمونه نرخ را به یک درخواست مجاز در هر پنج ثانیه (۶۰/۱۲) هموار میکند.
جدول زیر مشخصههای <Rate> را شرح میدهد:
| مشخصه | شرح | حضور | پیشفرض |
|---|---|---|---|
ref |
متغیر جریانی را که نرخ را مشخص میکند شناسایی میکند. این میتواند هر متغیر جریانی باشد،
مثل پارامتر پُرسمان HTTP، سرصفحه، یا محتوای بدنه پیام، یا مقداری
مثل KVM. برای اطلاعات بیشتر، به مرجع متغیرهای جریان مراجعه کنید.
همچنین میتوانید بااستفاده از خطمشی جاوا اسکریپت یا خطمشی «تخصیص پیام» از متغیرهای سفارشی استفاده کنید. اگر هم برای مثال: <Rate ref="request.header.custom_rate">1pm</Rate> در این مثال، اگر کارخواه سرایند «custom_rate» را ارسال نکند، نرخ پراکسی API برای همه کارخواهان ۱ درخواست در دقیقه است. اگر کارخواه سرایند «custom_rate» را ارسال کند، حد نرخ برای همه کارخواهان در پراکسی به ۱۰ درخواست در ثانیه تبدیل میشود — تا زمانی که درخواستی بدون سرایند «custom_rate» ارسال شود. میتوانید از اگر برای |
اختیاری | نامربوط |
Rate را که رفتار محدودسازی ترافیک را تعریف میکند شرح میدهد:
| مشخصه | شرح |
|---|---|
messagesPerPeriod |
تعداد پیامهای مجاز در یک دوره تعریفشده را مشخص میکند. برای مثال، اگر خطمشی برای «۱۰ps» (۱۰ در ثانیه) پیکربندی شده باشد، مقدار
messagesPerPeriod ۱۰ خواهد بود. |
periodInMicroseconds |
بازه زمانی را به میکروثانیه تعریف میکند که درطول آن
messagesPerPeriod محاسبه میشود. برای پیکربندی «۱۰ps»، این مقدار ۱٬۰۰۰٬۰۰۰ خواهد بود که معادل یک ثانیه است. |
maxBurstMessageCount |
نشاندهنده حداکثر تعداد درخواستهایی است که میتوانند فوراً یا در یک بازه کوتاه در ابتدای یک بازه جدید مجاز شوند. |
<UseEffectiveCount>
وقتی از گروههای مقیاسبندی خودکار استفاده میکنید، تعداد «مهار سنبله» را در «پردازندههای پیام» (MPs) توزیع میکند.
نحو
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <UseEffectiveCount>[false|true]</UseEffectiveCount> </SpikeArrest>
مثال ۱
مثال زیر <UseEffectiveCount> را روی درست تنظیم میکند:
<SpikeArrest name='Spike-Arrest-1'> <Rate>40ps</Rate> <UseEffectiveCount>true</UseEffectiveCount> </SpikeArrest>
عنصر <UseEffectiveCount> اختیاری است. وقتی عنصر از خطمشی «مهار جهش» شما حذف میشود، مقدار پیشفرض false
است.
| مقدار پیشفرض | نادرست |
| الزامی است؟ | اختیاری |
| تایپ کردن | بولی |
| عنصر والد |
<SpikeArrest>
|
| عناصر فرزند | خالی |
جدول زیر مشخصههای عنصر <UseEffectiveCount> را شرح میدهد:
| مشخصه | شرح | پیشفرض | حضور |
|---|---|---|---|
ref |
متغیری را که حاوی مقدار <UseEffectiveCount> است شناسایی میکند. این میتواند
هر متغیر جریانی باشد، مثل پارامتر پُرسمان HTTP، سرایند، یا محتوای بدنه پیام. برای اطلاعات بیشتر،
مرجع متغیرهای جریان را ببینید. همچنین میتوانید متغیرهای سفارشی را
بااستفاده از خطمشی جاوا اسکریپت یا خطمشی «تخصیص پیام» تنظیم کنید. |
نامربوط | اختیاری |
تأثیر <UseEffectiveCount> به مقدار آن بستگی دارد:
true: حد نرخ جهش MP عبارت است از<Rate>تقسیم بر تعداد فعلی MP در همان گروه. حد تجمیعی مقدار<Rate>است. وقتی «اعضای گروه» بهصورت پویا اضافه (یا حذف) میشوند، محدودیتهای نرخ جهش فردی آنها افزایش (یا کاهش) مییابد، اما محدودیت کلی ثابت میماند.-
false: حد نرخ جهش هر MP بهسادگی مقدار<Rate>آن است. حد مجموع عبارت است از مجموع نرخهای همه نمایندگان مجلس. وقتی «نقاط پایانی پیام» اضافه (یا برداشته) میشوند، حدود نرخ جهشی فردی آنها بدون تغییر میماند، اما حد تجمیعی افزایش (یا کاهش) مییابد.
خطمشی SpikeArrest از الگوریتم «توکن باکت» استفاده میکند که با تقسیم کردن حد نرخ مشخصشده به بازههای زمانی کوچکتر، جهشهای ترافیک را هموار میکند. یکی از معایب این رویکرد این است که ممکن است چندین درخواست قانونی که در یک بازه زمانی کوتاه ارسال میشوند، رد شوند.
برای مثال، فرض کنید نرخ ۳۰ درخواست در دقیقه را وارد میکنید. در آزمایش، ممکن است فکر کنید میتوانید ۳۰ درخواست در ۱ ثانیه ارسال کنید، بهشرطی که در یک دقیقه ارسال شوند. اما خطمشی این تنظیم را به این شکل اجرا نمیکند. اگر به آن فکر کنید، ۳۰ درخواست در یک دوره ۱ ثانیهای میتواند در برخی محیطها بهعنوان یک جهش کوچک درنظر گرفته شود.
- نرخهای در دقیقه به درخواستهای کامل مجاز در فواصل ثانیه تبدیل میشوند.
برای مثال، ۳۰ درخواست در دقیقه به این صورت هموار میشود:
۶۰ ثانیه (۱ دقیقه) / ۳۰ درخواست در دقیقه = فواصل ۲ ثانیهای، یا ۱ درخواست مجاز در هر ۲ ثانیه. درخواست دوم در عرض ۲ ثانیه انجام نخواهد شد. همچنین، درخواست سیویکم در یک دقیقه ناموفق خواهد بود. - نرخهای در ثانیه به درخواستهای کامل مجاز در فواصل زمانی
میلیثانیه تبدیل میشوند.
برای مثال، ۱۰ps بهاینصورت هموار میشود:
۱۰۰۰ میلیثانیه (۱ ثانیه) / ۱۰ps = فاصلههای ۱۰۰ میلیثانیهای، یا ۱ درخواست مجاز در هر ۱۰۰ میلیثانیه. درخواست دوم در فاصله ۱۰۰ میلیثانیه انجام نخواهد شد. همچنین، درخواست یازدهم در یک ثانیه انجام نخواهد شد.
جدول زیر تأثیر <UseEffectiveCount> را بر حد نرخ مؤثر هر
MP نشان میدهد:
مقدار <UseEffectiveCount> |
||||||
|---|---|---|---|---|---|---|
false |
false |
false |
true |
true |
true |
|
| تعداد نمایندگان مجلس | 8 | 4 | 2 | 8 | 4 | 2 |
مقدار <Rate> |
10 | 10 | 10 | 40 | ۴۰ | 40 |
| نرخ مؤثر بهازای هر MP | 10 | 10 | 10 | 5 | 10 | 20 |
| حد مجموع | 80 | 40 | 20 | *۴۰ | *۴۰ | *۴۰ |
* همانند <Rate>. |
||||||
در این مثال، توجه کنید که وقتی تعداد «واحد قیمت» از ۴ به ۲ کاهش مییابد، و
<UseEffectiveCount> برابر با false است، نرخ مؤثر بهازای هر «واحد قیمت» یکسان میماند (در ۱۰). اما وقتی <UseEffectiveCount> برابر با true باشد، نرخ مؤثر بهازای هر مگاپیکسل وقتی تعداد مگاپیکسلها از ۴ به ۲ کاهش مییابد از ۱۰ به ۲۰ میرسد.
متغیرهای جریان
وقتی خطمشی «مهار جهش» اجرا میشود، متغیر جریان زیر تکمیل میشود:
| متغیر | نوع | اجازه | شرح |
|---|---|---|---|
ratelimit.policy_name.failed |
بولی | فقط خواندنی | نشان میدهد که خطمشی ناموفق بوده است یا نه (true یا
false). |
برای اطلاعات بیشتر، به مرجع متغیرهای جریان مراجعه کنید.
مرجع خطا
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
| Fault code | HTTP status | Cause | Fix |
|---|---|---|---|
policies.ratelimit.FailedToResolveSpikeArrestRate |
500 |
This error occurs if the reference to the variable containing the rate setting
within the <Rate> element cannot be resolved to a value within the Spike Arrest
policy. This element is mandatory and used to specify the spike arrest rate in
the form of intpm or intps. |
build |
policies.ratelimit.InvalidMessageWeight |
500 |
This error occurs if the value specified for the <MessageWeight> element through
a flow variable is invalid (a non-integer value). |
build |
policies.ratelimit.SpikeArrestViolation |
429 |
The rate limit was exceeded. |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidAllowedRate |
If the spike arrest rate specified in the <Rate> element of the Spike Arrest
Policy is not an integer or if the rate does not have ps or pm as a suffix,
then the deployment of the API proxy fails. |
build |
Fault variables
These variables are set when a runtime error occurs. For more information, see What you need to know about policy errors.
| Variables | Where | Example |
|---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name Matches "SpikeArrestViolation" |
ratelimit.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | ratelimit.SA-SpikeArrestPolicy.failed = true |
Example error response
Shown below is an example error response:
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.SpikeArrestViolation" }, "faultstring":"Spike arrest violation. Allowed rate : 10ps" } }
Example fault rule
Shown below is an example fault rule to handle a SpikeArrestViolation fault:
<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
(خطای سرور داخلی)،
دارایی features.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 دردسترس است.
موضوعات مرتبط
- خطمشی سهمیه: خطمشی سهمیه، برای محدود کردن ترافیک در مشتریان فردی
- محدود کردن نرخ برای نمای کلی محدود کردن نرخ
- مقایسه خطمشیهای سهمیه و «توقف ناگهانی»
- نمونههای کاری از پراکسیهای API