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 की सीमाओं से ज़्यादा हो जाती है.