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

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

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

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

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

ध्यान रखें:

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

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

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

  1. Google Cloud कंसोल पर जाएं.
  2. एपीआई और सेवाएं को चुनें.
  3. टेबल की सूची से, Firebase Cloud Messaging 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 की सीमाओं से ज़्यादा हो जाती है, तो हम गड़बड़ी का मैसेज दिखाते हैं.