कॉल आवृत्ति (जैसे, 100 कॉल/मिनट) बनाम लंबी अवधि (जैसे, 10,000 कॉल/माह) में कुल कॉल को सीमित करके API उपयोग को नियंत्रित करें।
→कॉल आवृत्ति के लिए `rate-limit` नीति का उपयोग करें। कुल कॉल वॉल्यूम के लिए `quota` नीति का उपयोग करें।
क्यों: `rate-limit` अल्पकालिक बर्स्ट को थ्रॉटल करता है और HTTP 429 लौटाता है। `quota` लंबी अवधि (जैसे, एक बिलिंग अवधि) में उपयोग की सीमा लागू करता है और HTTP 403 लौटाता है जब यह अधिक हो जाता है।
संदर्भ↗
बैकएंड लोड को कम करने के लिए API Management में API प्रतिक्रियाओं को कैश करें, जिसमें कैश की अनुरोध हेडर द्वारा भिन्न होती है।
→इनबाउंड सेक्शन में `<cache-lookup vary-by-header="..." />` नीति और आउटबाउंड सेक्शन में `<cache-store duration="..." />` नीति का उपयोग करें।
क्यों: यह दो-भाग वाली नीति संयोजन प्रतिक्रिया कैशिंग को सक्षम बनाता है। `cache-lookup` एक कैश किए गए आइटम की जांच करता है, और `cache-store` प्रतिक्रिया को सहेजता है। `vary-by` एट्रिब्यूट्स विभिन्न अनुरोध भिन्नताओं के लिए अद्वितीय कैश प्रविष्टियां सुनिश्चित करते हैं।
एक API में परिवर्तनों को प्रबंधित करें। एक ब्रेकिंग चेंज आवश्यक है बनाम एक गैर-ब्रेकिंग चेंज का परीक्षण करने की आवश्यकता है।
→ब्रेकिंग चेंज (जैसे, /v1, /v2) के लिए Versions का उपयोग करें। गैर-ब्रेकिंग चेंज और सुरक्षित, स्टेज्ड रोलआउट के लिए Revisions का उपयोग करें।
क्यों: वर्जनिंग कई API वर्जन को एक साथ लाइव रहने की अनुमति देती है। Revisions आपको एक API को ऑफ़लाइन संशोधित करने, उसका परीक्षण करने, और फिर बिना डाउनटाइम के इसे "वर्तमान" रिविजन बनाने की अनुमति देते हैं।
जब एक Azure सेवा में कोई इवेंट होता है (जैसे, blob बनाया गया, रिसोर्स ग्रुप बनाया गया), तो कई, स्वतंत्र डाउनस्ट्रीम सेवाओं को सूचित करें।
→Azure Event Grid का उपयोग करें। Azure रिसोर्स के लिए एक सिस्टम टॉपिक और प्रत्येक डाउनस्ट्रीम हैंडलर के लिए इवेंट सब्सक्रिप्शन बनाएं।
क्यों: Event Grid एक पूरी तरह से प्रबंधित, पुश-आधारित पब/सब सेवा है जो इवेंट पब्लिशर्स को सब्सक्राइबर्स से अलग करती है, जिससे रिएक्टिव, इवेंट-ड्रिवेन आर्किटेक्चर सक्षम होते हैं।
संदर्भ↗
कई डिवाइस से टेलीमेट्री या इवेंट डेटा (प्रति सेकंड लाखों इवेंट) की उच्च-मात्रा वाली स्ट्रीम को इन्जेस्ट करें।
→Azure Event Hubs का उपयोग करें।
क्यों: Event Hubs एक बड़े पैमाने पर स्केलेबल डेटा स्ट्रीमिंग प्लेटफॉर्म है जिसे उच्च-थ्रूपुट इन्जेस्टियन के लिए डिज़ाइन किया गया है। यह समानांतर प्रोसेसिंग के लिए एक पार्टीशन किए गए कंज्यूमर मॉडल का उपयोग करता है।
सुनिश्चित करें कि एक ही स्रोत (जैसे, एक विशिष्ट IoT डिवाइस) से इवेंट एक ही कंज्यूमर द्वारा क्रम में संसाधित किए जाते हैं।
→स्रोत पहचानकर्ता (जैसे, डिवाइस ID) पर सेट पार्टीशन की के साथ Event Hubs पर इवेंट भेजें।
क्यों: Event Hubs एक ही पार्टीशन की वाले सभी संदेशों को एक ही पार्टीशन में रूट करता है। एक पार्टीशन के भीतर, संदेश क्रम बनाए रखा जाता है।
संबंधित संदेशों के अनुक्रम को सख्त First-In, First-Out (FIFO) क्रम में प्रोसेस करें।
→Azure Service Bus सत्रों का उपयोग करें। सभी संबंधित संदेशों को समान `SessionId` के साथ भेजें।
क्यों: सत्र संदेशों का एक समवर्ती, क्रमबद्ध स्ट्रीम प्रदान करते हैं। एक सत्र-जागरूक रिसीवर सत्र को लॉक करता है, यह गारंटी देता है कि संदेश एक ही उपभोक्ता द्वारा क्रमिक रूप से संसाधित किए जाते हैं।
एक सिंगल प्रकाशक एक टॉपिक पर संदेश भेजता है, लेकिन कई सब्सक्राइबर केवल उन संदेशों का एक सबसेट चाहते हैं जो संदेश गुणों पर आधारित होते हैं।
→कई सब्सक्रिप्शन के साथ एक Service Bus टॉपिक का उपयोग करें। प्रत्येक सब्सक्रिप्शन पर SQL फ़िल्टर या Correlation फ़िल्टर लागू करें।
क्यों: यह कंटेंट-आधारित रूटिंग के साथ कैनोनिकल पब्लिश-सब्सक्राइब पैटर्न है। प्रत्येक सब्सक्रिप्शन को संदेश की एक कॉपी प्राप्त होती है यदि वह उसके फ़िल्टर नियम से मेल खाती है।
एक संदेश कई पुनः प्रयासों के बाद सफलतापूर्वक संसाधित नहीं किया जा सकता है और इसे बाद के निरीक्षण के लिए अलग रखा जाना चाहिए।
→संदेश को तब तक प्रोसेसिंग में विफल होने दें जब तक उसकी अधिकतम डिलीवरी गणना पार न हो जाए। इसे स्वचालित रूप से Dead-Letter Queue (DLQ) में ले जाया जाएगा।
क्यों: DLQ जहर संदेशों के लिए एक अंतर्निहित सब-क्यू है। यह विफल संदेश को मुख्य क्यू को ब्लॉक करने से रोकता है और ऑफ़लाइन विश्लेषण और पुनर्संसाधन की अनुमति देता है।
इसके लिए एक मैसेजिंग सेवा चुनें: एंटरप्राइज़ कमांड, रिएक्टिव इवेंट, या उच्च-वॉल्यूम टेलीमेट्री।
→कमांड के लिए Service Bus (ऑर्डर, ट्रांजेक्शन)। रिएक्टिव इवेंट्स के लिए Event Grid (blob बनाया गया, रिसोर्स बदला गया)। टेलीमेट्री के लिए Event Hubs (IoT डेटा, क्लिकस्ट्रीम)।
क्यों: Service Bus ऑर्डरिंग, ट्रांजेक्शन और डेड-लेटरिंग जैसी समृद्ध सुविधाएँ प्रदान करता है। Event Grid हल्के, पुश-आधारित इवेंट रूटिंग के लिए है। Event Hubs उच्च-थ्रूपुट डेटा स्ट्रीमिंग के लिए है।