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