हमारा मकसद, FCM का इस्तेमाल करके भेजे गए हर मैसेज को डिलीवर करना है. हालांकि, कभी-कभी हर मैसेज को डिलीवर करने से, उपयोगकर्ता अनुभव खराब हो जाता है. अन्य मामलों में, हमें सीमाएं तय करनी पड़ती हैं, ताकि यह पक्का किया जा सके कि FCM, सभी भेजने वालों के लिए स्केलेबल सेवा उपलब्ध कराए. इस सेक्शन में बताई गई सीमाओं और कोटा के टाइप से, हमें इन अहम फ़ैक्टर के बीच संतुलन बनाए रखने में मदद मिलती है.
डाउनस्ट्रीम मैसेज थ्रॉटलिंग
HTTP v1 API में, डाउनस्ट्रीम मैसेजिंग के लिए, हर प्रोजेक्ट के लिए हर मिनट के हिसाब से कोटा तय किया गया है. हर मिनट में 6 लाख मैसेज के डिफ़ॉल्ट कोटा से, 99% से ज़्यादा FCM डेवलपर की ज़रूरतें पूरी हो जाती हैं. साथ ही, इससे सिस्टम की स्थिरता बनी रहती है और अचानक ट्रैफ़िक बढ़ने वाले प्रोजेक्ट पर पड़ने वाले असर को कम किया जा सकता है.
अचानक ट्रैफ़िक बढ़ने की वजह से, कोटा से ज़्यादा अनुरोध होने पर दिखने वाली गड़बड़ियां आ सकती हैं. कोटा से ज़्यादा अनुरोध होने पर, सिस्टम एचटीटीपी स्टेटस कोड 429 RESOURCE_EXHAUSTED ("QUOTA_EXCEEDED") दिखाता है. यह तब तक दिखता है, जब तक अगले मिनट में कोटा फिर से नहीं भर जाता. ज़्यादा लोड होने की स्थितियों में भी, 429 रिस्पॉन्स दिखाए जा सकते हैं. इसलिए, हमारा सुझाव है कि पब्लिश किए गए सुझावों के मुताबिक, 429 रिस्पॉन्स को मैनेज करें.
ध्यान रखें:
- डाउनस्ट्रीम कोटा में, मैसेज की संख्या मेज़र की जाती है, न कि अनुरोधों की.
- क्लाइंट की गड़बड़ियों (एचटीटीपी स्टेटस कोड 400-499) को गिना जाता है. हालांकि, 429 रिस्पॉन्स को नहीं गिना जाता.
- कोटा, हर मिनट के हिसाब से तय किए जाते हैं. हालांकि, ये मिनट घड़ी के हिसाब से नहीं होते.
कोटा की निगरानी करना
Google Cloud कंसोल में, कोटा, इस्तेमाल, और गड़बड़ियां देखी जा सकती हैं:
एपीआई और सेवाएं को चुनें.
टेबल की सूची से, Firebase क्लाउड से मैसेज API को चुनें.
कोटा और सिस्टम की सीमाएं को चुनें.
कोटा बढ़ाने का अनुरोध करना
कोटा बढ़ाने का अनुरोध करने से पहले, पक्का करें कि:
- आपका इस्तेमाल, हर दिन कम से कम पांच मिनट तक लगातार कोटा के 80% से ज़्यादा हो.
- क्लाइंट की गड़बड़ी का अनुपात 5% से कम हो. खास तौर पर, पीक ट्रैफ़िक के दौरान.
- आपने बड़े पैमाने पर मैसेज भेजने के लिए, सबसे सही तरीके अपनाए हों .
अगर आपने ये शर्तें पूरी कर ली हैं, तो Google Cloud Console पर जाकर, +25%तक कोटा बढ़ाने का अनुरोध सबमिट किया जा सकता है. इसके लिए, यह तरीका अपनाएं:
- **कोटा और सिस्टम की सीमाएं** पर जाएं.
- टेबल से, हर मिनट भेजे जाने वाले अनुरोध वाली लाइन को चुनें.
- बदलाव करें बटन पर क्लिक करें.
- अनुरोध सबमिट करने के लिए, निर्देशों का पालन करें.
FCM अनुरोध को पूरा करने की पूरी कोशिश करेगा. हालांकि, कोटा बढ़ाने की कोई गारंटी नहीं दी जा सकती .
अगर आपको किसी लॉन्च या अस्थायी इवेंट की वजह से, डाउनस्ट्रीम मैसेजिंग के लिए ज़्यादा कोटा चाहिए, तो आपको Firebase की सहायता टीम से संपर्क करके, कोटा बढ़ाने का अनुरोध करना होगा. कोटा बढ़ाने का अनुरोध, कम से कम 15 दिन पहले करें, ताकि अनुरोध को प्रोसेस करने के लिए हमारे पास पर्याप्त समय हो. बड़े अनुरोधों (हर मिनट में 1.8 करोड़ से ज़्यादा मैसेज) के लिए, कम से कम 30 दिन पहले सूचना देना ज़रूरी है. हम हर साल, अस्थायी कोटा के सिर्फ़ दो इवेंट को मंज़ूरी दे सकते हैं. साल भर में, अस्थायी कोटा की कुल अवधि 30 दिनों से ज़्यादा नहीं होनी चाहिए. लॉन्च और खास इवेंट के अनुरोधों पर, क्लाइंट की गड़बड़ी के अनुपात और सबसे सही तरीकों से जुड़ी ज़रूरी शर्तें लागू होती हैं.
ज़्यादा जानने के लिए, FCM कोटा देखें.
विषय के हिसाब से मैसेज भेजने की सीमाएं और फ़ैनआउट थ्रॉटलिंग
ज़्यादा जानकारी के लिए, विषय के हिसाब से मैसेज भेजने के कोटा और सीमाएं देखें.
छोटा किए जा सकने वाले मैसेज की थ्रॉटलिंग
छोटा किए जा सकने वाले मैसेज में बताए गए तरीके के मुताबिक, ये ऐसे कॉन्टेंट-फ़्री सूचनाएं होती हैं जिन्हें एक के ऊपर एक छोटा किया जा सकता है. अगर कोई डेवलपर, किसी ऐप्लिकेशन को एक ही मैसेज बार-बार भेजता है, तो हम मैसेज भेजने में देरी करते हैं, ताकि उपयोगकर्ता की बैटरी पर पड़ने वाले असर को कम किया जा सके.
उदाहरण के लिए, अगर किसी एक डिवाइस पर नए ईमेल सिंक करने के लिए, बड़ी संख्या में अनुरोध भेजे जाते हैं, तो हम अगले ईमेल सिंक करने के अनुरोध में कुछ मिनट की देरी कर सकते हैं, ताकि डिवाइस कम औसत दर पर सिंक हो सके. यह थ्रॉटलिंग, सिर्फ़ उपयोगकर्ता की बैटरी पर पड़ने वाले असर को कम करने के लिए की जाती है.
अगर आपके इस्तेमाल के मामले में, अचानक बड़ी संख्या में मैसेज भेजने की ज़रूरत पड़ती है, तो छोटा न किए जा सकने वाले मैसेज सही विकल्प हो सकते हैं. ऐसे मैसेज के लिए, उनमें कॉन्टेंट शामिल करना न भूलें, ताकि बैटरी की खपत कम हो.
हम छोटा किए जा सकने वाले मैसेज की सीमा, हर ऐप्लिकेशन के लिए हर डिवाइस पर 20 मैसेज तय करते हैं. इसके बाद, हर तीन मिनट में एक मैसेज भेजा जा सकता है.
किसी एक डिवाइस पर मैसेज भेजने की ज़्यादा से ज़्यादा दर
Android के लिए, किसी एक डिवाइस पर हर मिनट में 240 और हर घंटे में 5,000 मैसेज भेजे जा सकते हैं. यह ज़्यादा थ्रेशोल्ड, अचानक बढ़ने वाले ट्रैफ़िक को मैनेज करने के लिए है. जैसे, जब लोग चैट पर तेज़ी से इंटरैक्ट कर रहे हों. इस सीमा से, मैसेज भेजने की लॉजिक में गड़बड़ियां होने से, किसी डिवाइस की बैटरी खत्म होने से रोका जा सकता है.
iOS के लिए, जब दर APNs की सीमाओं से ज़्यादा हो जाती है, तो हम गड़बड़ी का मैसेज दिखाते हैं.