हमारा मकसद, 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 की सीमाओं से ज़्यादा हो जाती है, तो हम गड़बड़ी का मैसेज दिखाते हैं.