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

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

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

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

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

ध्यान रखें:

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

मॉनिटरिंग कोटा

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

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

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

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

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

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

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

  • आपका इस्तेमाल, लगातार पांच मिनट तक हर दिन कोटा के 80% से ज़्यादा हो.
  • क्लाइंट की गड़बड़ियों का अनुपात 5% से कम हो. खास तौर पर, पीक ट्रैफ़िक के दौरान.
  • आपने एक साथ कई मैसेज भेजने के सबसे सही तरीके अपनाए हों.

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

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

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

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

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

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

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

मैसेज थ्रॉटलिंग को छोटा किया जा सकता है

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

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

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

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

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

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

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