एंटीपैटर्न: जो कोटा नहीं दिया गया है उसे कॉन्फ़िगर करें

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

Apigee Edge की मदद से, एपीआई प्रॉक्सी में अनुरोधों की संख्या को कॉन्फ़िगर किया जा सकता है कोटा की नीति का इस्तेमाल करके, किसी खास समयावधि के लिए तय किया जा सकता है.

एंटीपैटर्न

एपीआई प्रॉक्सी अनुरोध को एक या एक से ज़्यादा डिस्ट्रिब्यूट किए गए Edge कॉम्पोनेंट असाइन किए जा सकते हैं मैसेज प्रोसेसर. अगर सेवा एपीआई के लिए एक से ज़्यादा मैसेज प्रोसेसर कॉन्फ़िगर किए गए हैं अनुरोध करते हैं, तो कोटा पार हो सकता है, क्योंकि हर मैसेज प्रोसेसर अपना खुद का होता है "संख्या" उन अनुरोधों को प्रोसेस करती है.

आइए, एक उदाहरण की मदद से इसे समझाते हैं. एपीआई के लिए, नीचे दी गई कोटा नीति का इस्तेमाल करें प्रॉक्सी:

<!-- /antipatterns/examples/1-6.xml -->
<Quota name="CheckTrafficQuota">
  <Interval>1</Interval>
  <TimeUnit>hour</TimeUnit>
  <Allow count="100"/>
</Quota>

ऊपर दिए गए कॉन्फ़िगरेशन में हर घंटे कुल 100 अनुरोध किए जा सकते हैं.

हालांकि, जब एक से ज़्यादा मैसेज प्रोसेसर एपीआई अनुरोधों को पूरा करते हैं, तो ये चीज़ें होती हैं:

ऊपर दिए गए उदाहरण में:

  • कोटा नीति को हर घंटे 100 अनुरोध अनुमति देने के लिए कॉन्फ़िगर किया गया है.
  • एपीआई प्रॉक्सी के अनुरोध दो मैसेज प्रोसेसर से मिल रहे हैं.
  • हर मैसेज प्रोसेसर, अपने कोटा की गिनती करने वाले वैरिएबल quota_count_mp1 को बनाए रखता है और quota_count_mp2 प्रोसेस किए जा रहे अनुरोधों की संख्या ट्रैक करने के लिए इसका इस्तेमाल किया जा सकता है.
  • इसलिए, मैसेज प्रोसेसर, 100 एपीआई अनुरोधों को अलग से अनुमति देगा. द नेट इफ़ेक्ट कुल 200 अनुरोध प्रोसेस किए जाते हैं, जबकि 100 अनुरोध प्रोसेस नहीं किए जाते.

असर

यह स्थिति कोटा कॉन्फ़िगरेशन के मकसद को खारिज कर देती है. साथ ही, इसका बुरा असर पड़ सकता है हैं, जो अनुरोधों को पूरा कर रहे हैं.

बैकएंड सर्वर ये काम कर सकते हैं:

  • उम्मीद से ज़्यादा ट्रैफ़िक मिलने की वजह से तनाव में रहना
  • एपीआई के उन नए अनुरोधों का जवाब न देना जिनकी वजह से 503 गड़बड़ियां हुई हैं

सबसे सही तरीका

कोटा की नीति में <Distributed> एलिमेंट को true पर सेट करके देखें, पक्का करें कि सभी मैसेज प्रोसेसर में, एपीआई अनुरोधों को ट्रैक करने के लिए एक कॉमन काउंटर का इस्तेमाल किया गया हो. <Distributed> एलिमेंट को इस तरह से सेट किया जा सकता है, जैसा कि नीचे दिए गए कोड स्निपेट में दिखाया गया है:

<!-- /antipatterns/examples/1-7.xml -->
<Quota name="CheckTrafficQuota">
  <Interval>1</Interval>
  <TimeUnit>hour</TimeUnit>
  <Distributed>true</Distributed>
  <Allow count="100"/>
</Quota>