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

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

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

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

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

ध्यान रखें:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

मैसेज को छोटा करने की सुविधा के लिए थ्रॉटलिंग

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

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

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

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

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

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

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