FCM थ्रॉटलिंग और कोटा

हमारा मकसद, FCM का इस्तेमाल करके भेजे गए हर मैसेज को डिलीवर करना है. हालांकि, कभी-कभी हर मैसेज को डिलीवर करने से, उपयोगकर्ता अनुभव खराब हो जाता है. कुछ मामलों में, हमें सीमाएं तय करनी पड़ती हैं, ताकि FCM सभी भेजने वालों के लिए, स्केल की जा सकने वाली सेवा उपलब्ध करा सके. इस सेक्शन में बताई गई सीमाओं और कोटा के टाइप से, हमें इन अहम फ़ैक्टर के बीच संतुलन बनाए रखने में मदद मिलती है.

डाउनस्ट्रीम मैसेज थ्रॉटलिंग

HTTP v1 API में, डाउनस्ट्रीम मैसेजिंग के लिए, हर प्रोजेक्ट के लिए हर मिनट के हिसाब से कोटा तय किया गया है. हर मिनट में 6 लाख मैसेज का डिफ़ॉल्ट कोटा, FCM डेवलपर की ज़रूरतें पूरी करता है. साथ ही, इससे सिस्टम की स्थिरता बनी रहती है और अचानक ट्रैफ़िक बढ़ने वाले प्रोजेक्ट पर पड़ने वाले असर को कम किया जा सकता है.

अचानक ट्रैफ़िक बढ़ने की वजह से, कोटा से ज़्यादा अनुरोध होने पर दिखने वाली गड़बड़ियां आ सकती हैं. कोटा से ज़्यादा अनुरोध होने पर, सिस्टम एचटीटीपी स्टेटस कोड 429 RESOURCE_EXHAUSTED ("QUOTA_EXCEEDED") दिखाता है. यह तब तक दिखता है, जब तक अगले मिनट में कोटा फिर से नहीं भर जाता. ज़्यादा लोड होने की वजह से भी, 429 रिस्पॉन्स मिल सकते हैं. इसलिए, हमारा सुझाव है कि पब्लिश किए गए सुझावों के मुताबिक, 429 रिस्पॉन्स को मैनेज करें.

ध्यान रखें:

  • डाउनस्ट्रीम कोटा, मैसेज की संख्या के हिसाब से तय किया जाता है, न कि अनुरोधों की संख्या के हिसाब से.
  • क्लाइंट की गड़बड़ियों (एचटीटीपी स्टेटस कोड 400-499) को गिना जाता है. हालांकि, 429 रिस्पॉन्स को नहीं गिना जाता.
  • कोटा, हर मिनट के हिसाब से तय किया जाता है. हालांकि, ये मिनट घड़ी के हिसाब से नहीं होते.

कोटा की निगरानी करना

Google Cloud कंसोल में, कोटा, इस्तेमाल, और गड़बड़ियां देखी जा सकती हैं:

  1. Google Cloud कंसोल पर जाएं.

  2. एपीआई और सेवाएं को चुनें.

  3. टेबल की सूची में से, Firebase क्लाउड से मैसेज API को चुनें.

  4. कोटा और सिस्टम की सीमाएं को चुनें.

कोटा बढ़ाने का अनुरोध करना

कोटा बढ़ाने का अनुरोध करने से पहले, पक्का करें कि:

अगर आपने ये शर्तें पूरी कर ली हैं, तो Google Cloud Console पर जाकर, +25%तक कोटा बढ़ाने का अनुरोध सबमिट किया जा सकता है. इसके लिए, यह तरीका अपनाएं:

  1. **कोटा और सिस्टम की सीमाएं** पर जाएं.
  2. टेबल में से, हर मिनट भेजे जाने वाले अनुरोध वाली लाइन को चुनें.
  3. बदलाव करें बटन पर क्लिक करें.
  4. अनुरोध सबमिट करने के लिए, दिए गए निर्देशों का पालन करें.

FCM अनुरोध को पूरा करने की पूरी कोशिश करेगा. हालांकि, कोटा बढ़ाने की कोई गारंटी नहीं दी जा सकती .

अगर आपको लॉन्च होने वाले किसी इवेंट या अस्थायी इवेंट की वजह से, डाउनस्ट्रीम मैसेजिंग के लिए ज़्यादा कोटा चाहिए, तो आपको Firebase की सहायता टीम से संपर्क करके, कोटा बढ़ाने का अनुरोध करना होगा. कोटा बढ़ाने का अनुरोध, कम से कम 15 दिन पहले करें, ताकि अनुरोध को प्रोसेस करने के लिए हमारे पास काफ़ी समय हो. अगर आपको हर मिनट में 1.8 करोड़ से ज़्यादा मैसेज भेजने हैं, तो कम से कम 30 दिन पहले सूचना दें. हम हर साल, अस्थायी कोटा के सिर्फ़ दो इवेंट को मंज़ूरी दे सकते हैं. साल भर में, अस्थायी कोटा की कुल अवधि 30 दिनों से ज़्यादा नहीं होनी चाहिए. लॉन्च और खास इवेंट के अनुरोधों पर, क्लाइंट की गड़बड़ी के अनुपात और सबसे सही तरीकों से जुड़ी ज़रूरी शर्तें लागू होती हैं.

ज़्यादा जानने के लिए, FCM कोटा देखें.

विषय के हिसाब से मैसेज भेजने की सीमाएं और फ़ैनआउट थ्रॉटलिंग

ज़्यादा जानकारी के लिए, विषय के हिसाब से मैसेज भेजने के कोटा और सीमाएं देखें.

कोलेप्सेबल मैसेज थ्रॉटलिंग

कोलेप्सेबल मैसेज के बारे में जानकारी में बताया गया है कि कोलेप्सेबल मैसेज, कॉन्टेंट-फ़्री सूचनाएं होती हैं. इन्हें एक के ऊपर एक कोलेप्स किया जा सकता है. अगर कोई डेवलपर, किसी ऐप्लिकेशन को एक ही मैसेज बार-बार भेजता है, तो हम मैसेज भेजने में देरी करते हैं, ताकि उपयोगकर्ता की बैटरी पर पड़ने वाले असर को कम किया जा सके.

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

अगर आपके इस्तेमाल के मामले में, अचानक बड़ी संख्या में मैसेज भेजने की ज़रूरत पड़ती है, तो कोलेप्सेबल मैसेज सही विकल्प हो सकते हैं. ऐसे मैसेज के लिए, उनमें कॉन्टेंट शामिल करना न भूलें, ताकि बैटरी की खपत कम हो.

हम कोलेप्सेबल मैसेज की सीमा तय करते हैं. इसके तहत, हर ऐप्लिकेशन के लिए हर डिवाइस पर, एक बार में ज़्यादा से ज़्यादा 20 मैसेज भेजे जा सकते हैं. इसके बाद, हर तीन मिनट में एक मैसेज भेजा जा सकता है.

किसी एक डिवाइस पर मैसेज भेजने की ज़्यादा से ज़्यादा दर

Android के लिए, किसी एक डिवाइस पर हर मिनट में ज़्यादा से ज़्यादा 240 मैसेज और हर घंटे में 5,000 मैसेज भेजे जा सकते हैं. यह ज़्यादा थ्रेशोल्ड, कम समय के लिए अचानक ट्रैफ़िक बढ़ने की स्थिति में काम आता है. जैसे, जब लोग चैट पर तेज़ी से इंटरैक्ट कर रहे हों. इस सीमा से, मैसेज भेजने की लॉजिक में गड़बड़ी होने की वजह से, किसी डिवाइस की बैटरी खत्म होने से रोका जा सकता है.

iOS के लिए, जब दर APNs की सीमाओं से ज़्यादा हो जाती है, तो हम गड़बड़ी का मैसेज दिखाते हैं.