Apigee Edge का दस्तावेज़ देखा जा रहा है.
Apigee X के दस्तावेज़ पर जाएं. जानकारी

स्पाइक अरेस्ट की नीति, <Rate>
एलिमेंट की मदद से, ट्रैफ़िक के बढ़ने से बचाती है. यह एलिमेंट, एपीआई प्रॉक्सी से प्रोसेस किए गए और बैकएंड को भेजे गए अनुरोधों की संख्या को कम करता है. इससे परफ़ॉर्मेंस में होने वाली देरी और डाउनटाइम से बचा जा सकता है.
<SpikeArrest>
एलिमेंट
स्पाइक अरेस्ट की नीति के बारे में बताता है.
डिफ़ॉल्ट वैल्यू | नीचे डिफ़ॉल्ट नीति टैब देखें |
क्या यह ज़रूरी है? | वैकल्पिक |
समस्या | कॉम्प्लेक्स ऑब्जेक्ट |
पैरंट एलिमेंट | लागू नहीं |
चाइल्ड एलिमेंट |
<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>
इस एलिमेंट में ये एट्रिब्यूट शामिल होते हैं, जो सभी नीतियों में शामिल हैं:
एट्रिब्यूट | डिफ़ॉल्ट | ज़रूरी है? | ब्यौरा |
---|---|---|---|
name |
लागू नहीं | ज़रूरी |
नीति का अंदरूनी नाम. इसके अलावा, मैनेजमेंट एलिमेंट के यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर में, नीति एलिमेंट को किसी अलग नाम से इस्तेमाल करने के लिए, |
continueOnError |
गलत | ज़रूरी नहीं | नीति के काम न करने पर गड़बड़ी दिखाने के लिए, "गलत" पर सेट करें. ज़्यादातर नीतियों के लिए इस तरीके का इस्तेमाल किया जाना चाहिए. नीति लागू न होने के बाद भी फ़्लो चलाने के लिए, "सही" पर सेट करें. |
enabled |
सही | ज़रूरी नहीं | नीति लागू करने के लिए, "सही" पर सेट करें. नीति को "बंद" करने के लिए "गलत" पर सेट करें. अगर नीति किसी फ़्लो से जुड़ी हुई हो, तो भी उसे लागू नहीं किया जाएगा. |
async |
गलत | बहिष्कृत | इस एट्रिब्यूट के इस्तेमाल पर रोक लगा दी गई है. |
उदाहरण
यहां दिए गए उदाहरणों में, स्पाइक अरेस्ट की नीति का इस्तेमाल करने के कुछ तरीके बताए गए हैं:
उदाहरण 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
के 10% के तौर पर कॉन्फ़िगर किया जाता है. इसलिए, messagesPerPeriod
के 300 होने पर, बकेट का साइज़ 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
इस उदाहरण में, Spike Arrest को 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>
name
एट्रिब्यूट के साथ-साथ, नीति को मैनेज करने वाले यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर में, नीति को किसी ऐसे नाम से लेबल करें जो सामान्य हो और सुनने में अच्छा लगे.
<DisplayName>
एलिमेंट सभी नीतियों में एक जैसा होता है.
डिफ़ॉल्ट वैल्यू | लागू नहीं |
क्या यह ज़रूरी है? | ज़रूरी नहीं. <DisplayName> को छोड़ने पर, नीति के name एट्रिब्यूट की वैल्यू का इस्तेमाल किया जाता है |
स्ट्रीम किस तरह की है | स्ट्रिंग |
पैरंट एलिमेंट | <PolicyElement> |
चाइल्ड एलिमेंट | कोई नहीं |
<DisplayName>
एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:
सिंटैक्स
<PolicyElement> <DisplayName>policy_display_name</DisplayName> ... </PolicyElement>
उदाहरण
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
<DisplayName>
एलिमेंट में कोई एट्रिब्यूट या चाइल्ड एलिमेंट नहीं है.
<Identifier>
इससे, अनुरोधों को ग्रुप करने का तरीका चुना जा सकता है, ताकि क्लाइंट के आधार पर, स्पाइक अरेस्ट की नीति लागू की जा सके. उदाहरण के लिए, अनुरोधों को डेवलपर आईडी के हिसाब से ग्रुप किया जा सकता है. ऐसे में, हर डेवलपर के अनुरोधों को, स्पाइक को रोकने की दर के हिसाब से गिना जाएगा, न कि प्रोक्सी के सभी अनुरोधों को.
अनुरोध को कम करने की सुविधा को बेहतर तरीके से कंट्रोल करने के लिए, <MessageWeight>
एलिमेंट के साथ इस्तेमाल करें.
अगर <Identifier>
एलिमेंट को खाली छोड़ा जाता है, तो उस एपीआई प्रॉक्सी में सभी अनुरोधों के लिए, एक दर सीमा लागू की जाती है.
डिफ़ॉल्ट वैल्यू | लागू नहीं |
क्या यह ज़रूरी है? | वैकल्पिक |
समस्या | स्ट्रिंग |
पैरंट एलिमेंट |
<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 नीति का इस्तेमाल करके भी कस्टम वैरिएबल सेट किए जा सकते हैं. | लागू नहीं | ज़रूरी है |
इस एलिमेंट के बारे में, Apigee कम्यूनिटी की इस पोस्ट में भी बताया गया है: http://community.apigee.com/questions/2807/how-does-the-edge-quota-policy-work-when-no-identi.html.
<MessageWeight>
इससे हर मैसेज के लिए तय किए गए वज़न की जानकारी मिलती है. मैसेज की अहमियत से, स्पाइक की दर का हिसाब लगाने पर, किसी एक अनुरोध के असर में बदलाव होता है. मैसेज का वज़न, कोई भी फ़्लो वैरिएबल हो सकता है. जैसे, एचटीटीपी हेडर, क्वेरी पैरामीटर, फ़ॉर्म पैरामीटर या मैसेज के मुख्य हिस्से का कॉन्टेंट. JavaScript नीति या AssignMessage नीति का इस्तेमाल करके, कस्टम वैरिएबल का भी इस्तेमाल किया जा सकता है.
किसी खास क्लाइंट या ऐप्लिकेशन के अनुरोधों को और कम करने के लिए, <Identifier>
के साथ इस्तेमाल करें.
उदाहरण के लिए, अगर स्पाइक अरेस्ट <Rate>
10pm
है और कोई ऐप्लिकेशन 2
के वेट के साथ अनुरोध सबमिट करता है, तो उस क्लाइंट से हर मिनट में सिर्फ़ पांच मैसेज भेजने की अनुमति है, क्योंकि हर अनुरोध की गिनती दो के तौर पर की जाती है.
डिफ़ॉल्ट वैल्यू | लागू नहीं |
क्या यह ज़रूरी है? | वैकल्पिक |
समस्या | पूर्णांक |
पैरंट एलिमेंट |
<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 |
उस फ़्लो वैरिएबल की पहचान करता है जिसमें किसी क्लाइंट के लिए मैसेज का वज़न होता है. यह कोई भी फ़्लो वैरिएबल हो सकता है, जैसे कि एचटीटीपी क्वेरी पैरामीटर, हेडर या मैसेज बॉडी का कॉन्टेंट. ज़्यादा जानकारी के लिए, फ़्लो वैरिएबल का रेफ़रंस देखें. JavaScript नीति या AssignMessage नीति का इस्तेमाल करके भी कस्टम वैरिएबल सेट किए जा सकते हैं. | ज़रूरी है | लागू नहीं |
<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 की वैल्यू, पॉज़िटिव और शून्य से ज़्यादा होनी चाहिए.
उदाहरण 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 |
उस फ़्लो वैरिएबल की पहचान करता है जो दर की जानकारी देता है. यह कोई भी फ़्लो वैरिएबल हो सकता है, जैसे कि एचटीटीपी क्वेरी पैरामीटर, हेडर या मैसेज का मुख्य हिस्सा. इसके अलावा, यह वैल्यू भी हो सकती है, जैसे कि केवीएम. ज़्यादा जानकारी के लिए, फ़्लो वैरिएबल का रेफ़रंस देखें.
JavaScript नीति या AssignMessage नीति का इस्तेमाल करके, कस्टम वैरिएबल का भी इस्तेमाल किया जा सकता है. अगर आपने उदाहरण के लिए: <Rate ref="request.header.custom_rate">1pm</Rate> इस उदाहरण में, अगर क्लाइंट "custom_rate" हेडर नहीं भेजता है, तो सभी क्लाइंट के लिए एपीआई प्रॉक्सी की दर, हर मिनट में एक अनुरोध होगी. अगर क्लाइंट "custom_rate" हेडर पास करता है, तो प्रॉक्सी पर मौजूद सभी क्लाइंट के लिए, अनुरोध की दर की सीमा हर सेकंड 10 अनुरोध हो जाती है. ऐसा तब तक होता है, जब तक "custom_rate" हेडर के बिना कोई अनुरोध नहीं भेजा जाता. अलग-अलग तरह के क्लाइंट के लिए कस्टम किराये लागू करने के लिए, अनुरोधों को ग्रुप करने के लिए अगर आपने |
वैकल्पिक | लागू नहीं |
<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> की वैल्यू होती है. यह कोई भी फ़्लो वैरिएबल हो सकता है, जैसे कि एचटीटीपी क्वेरी पैरामीटर, हेडर या मैसेज बॉडी का कॉन्टेंट. ज़्यादा जानकारी के लिए, फ़्लो वैरिएबल का रेफ़रंस देखें. JavaScript नीति या AssignMessage नीति का इस्तेमाल करके भी कस्टम वैरिएबल सेट किए जा सकते हैं. |
लागू नहीं | वैकल्पिक |
<UseEffectiveCount>
का असर, इसकी वैल्यू पर निर्भर करता है:
true
: किसी पॉड में मौजूद एमपी की संख्या को,<Rate>
से भाग देने पर, एमपी के स्पाइक रेट की सीमा मिलती है. कुल सीमा,<Rate>
की वैल्यू है. जब एमपी डाइनैमिक तौर पर जोड़े (या हटाए) जाते हैं, तो उनके लिए स्पाइक रेट की अलग-अलग सीमाएं बढ़ जाएंगी (या कम हो जाएंगी). हालांकि, कुल सीमा में कोई बदलाव नहीं होगा.false
(अगर यह वैल्यू नहीं दी जाती है, तो यह डिफ़ॉल्ट वैल्यू होती है): हर एमपी के स्पाइक रेट की सीमा, बस उसकी<Rate>
वैल्यू होती है. कुल सीमा, सभी एमपी की दरों का योग होती है. एमपी जोड़ने (या हटाने) पर, उनके स्पाइक रेट की अलग-अलग सीमाएं पहले जैसी ही रहेंगी. हालांकि, कुल सीमा बढ़ जाएगी (या घट जाएगी).
नीचे दी गई टेबल में, हर एमपी की दर की सीमा पर <UseEffectiveCount>
के असर को दिखाया गया है:
<UseEffectiveCount> की वैल्यू |
||||||
---|---|---|---|---|---|---|
false |
false |
false |
true |
true |
true |
|
# of MPs | 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 ). |
ज़्यादा जानकारी के लिए, फ़्लो वैरिएबल का रेफ़रंस देखें.
गड़बड़ी का रेफ़रंस
इस सेक्शन में, गड़बड़ी के कोड और गड़बड़ी के मैसेज के साथ-साथ गड़बड़ी के वैरिएबल के बारे में बताया गया है ये सेटिंग, Edge की मदद से सेट की जाती हैं. ऐसा तब होता है, जब इस नीति की वजह से कोई गड़बड़ी होती है. यह जानकारी जानना ज़रूरी है कि क्या आप गड़बड़ियों को ठीक करता है. इस बारे में ज़्यादा जानने के लिए, यह देखें आपके लिए काम की जानकारी नीति से जुड़ी गड़बड़ियों और हैंडलिंग के बारे में जानकारी गलतियां.
रनटाइम की गड़बड़ियां
नीति के लागू होने पर ये गड़बड़ियां हो सकती हैं.
गड़बड़ी कोड | एचटीटीपी कोड स्थिति | वजह | ठीक करें |
---|---|---|---|
policies.ratelimit.FailedToResolveSpikeArrestRate |
500 |
यह गड़बड़ी तब होती है, जब रेट सेटिंग वाले वैरिएबल का रेफ़रंस होता है
<Rate> एलिमेंट के अंदर, Spike Arrest में मौजूद वैल्यू नहीं हटाई जा सकती
की नीति देखें. यह एलिमेंट ज़रूरी है. इसका इस्तेमाल, गिरफ़्तारी की दर के बारे में बताने के लिए किया जाता है
intpm या intps का फ़ॉर्मैट. |
build |
policies.ratelimit.InvalidMessageWeight |
500 |
यह गड़बड़ी तब होती है, जब <MessageWeight> एलिमेंट के लिए वैल्यू इसके ज़रिए तय की जाती है
फ़्लो वैरिएबल अमान्य है (गैर-पूर्णांक मान). |
build |
policies.ratelimit.SpikeArrestViolation |
429 |
दर सीमा पार हो गई थी. |
डिप्लॉयमेंट से जुड़ी गड़बड़ियां
ये गड़बड़ियां तब हो सकती हैं, जब इस नीति वाली प्रॉक्सी को डिप्लॉय किया जाता है.
गड़बड़ी का नाम | वजह | ठीक करें |
---|---|---|
InvalidAllowedRate |
अगर स्पाइक अरेस्ट के <Rate> एलिमेंट में, गिरफ़्तारी की ज़्यादा दर बताई गई है, तो
नीति कोई पूर्णांक नहीं है या अगर दर में सफ़िक्स के तौर पर ps या pm नहीं है, तो
तब एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता. |
build |
गड़बड़ी के वैरिएबल
रनटाइम की गड़बड़ी होने पर ये वैरिएबल सेट किए जाते हैं. ज़्यादा जानकारी के लिए, आपके लिए ज़रूरी जानकारी देखें नीति से जुड़ी गड़बड़ियों के बारे में जानकारी.
वैरिएबल | कहां | उदाहरण |
---|---|---|
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>
कोटा या स्पाइक रोकने की नीति से तय की गई दर की सीमा से ज़्यादा अनुरोध करने पर, एचटीटीपी का मौजूदा स्टेटस कोड 429
(ज़्यादा अनुरोध) होता है. एचटीटीपी स्टेटस कोड को 500
(इंटरनल सर्वर गड़बड़ी) में बदलने के लिए,
features.isHTTPStatusTooManyRequestEnabled
प्रॉपर्टी को false
पर सेट करें. इसके लिए,
Update organization properties API का इस्तेमाल करें.
उदाहरण के लिए:
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>"
स्कीमा
हर नीति टाइप को एक्सएमएल स्कीमा (.xsd
) से तय किया जाता है. रेफ़रंस के लिए, GitHub पर नीति स्कीमा उपलब्ध हैं.
मिलते-जुलते विषय
- कोटा नीति: कोटा नीति, जिससे अलग-अलग क्लाइंट पर ट्रैफ़िक को सीमित किया जा सके
- अनुरोध की संख्या सीमित करने की सुविधा के बारे में खास जानकारी पाने के लिए, अनुरोध की संख्या सीमित करना
- कोटा और स्पाइकअरेस्ट की नीतियों की तुलना करना
- एपीआई प्रॉक्सी के काम करने वाले सैंपल