हमारा मकसद, FCM का इस्तेमाल करके भेजे गए हर मैसेज को डिलीवर करना है. हालांकि, हर मैसेज डिलीवर करने से कभी-कभी उपयोगकर्ता अनुभव खराब हो जाता है. अन्य मामलों में, हमें सीमाएं तय करनी होती हैं, ताकि यह पक्का किया जा सके कि FCM, सभी सेंडर के लिए एक बेहतर सेवा उपलब्ध कराता है. इस सेक्शन में बताई गई सीमाओं और कोटा से, हमें इन अहम फ़ैक्टर को बैलेंस करने में मदद मिलती है.
डाउनस्ट्रीम मैसेज थ्रॉटलिंग
HTTP v1 API में, डाउनस्ट्रीम मैसेजिंग के लिए हर प्रोजेक्ट और हर मिनट के हिसाब से कोटा तय किए गए हैं. हर मिनट 600,000 मैसेज भेजने की डिफ़ॉल्ट सीमा, 99% से ज़्यादा FCM डेवलपर के लिए काफ़ी है. इससे सिस्टम की स्थिरता बनी रहती है और अचानक बढ़ने वाले प्रोजेक्ट पर असर कम पड़ता है.
ट्रैफ़िक में अचानक बढ़ोतरी होने पर, कोटा से ज़्यादा अनुरोध होने पर दिखने वाली गड़बड़ियां हो सकती हैं. कोटा से ज़्यादा अनुरोध मिलने पर, सिस्टम अगले मिनट तक HTTP स्टेटस कोड 429 RESOURCE_EXHAUSTED ("QUOTA_EXCEEDED") दिखाता है. सर्वर पर ज़्यादा लोड होने की वजह से भी 429 रिस्पॉन्स मिल सकते हैं. इसलिए, हमारा सुझाव है कि आप पब्लिश किए गए सुझावों के मुताबिक, 429 रिस्पॉन्स को हैंडल करें.
ध्यान रखें:
- डाउनस्ट्रीम कोटा, अनुरोधों के बजाय मैसेज को मेज़र करता है.
- क्लाइंट की गड़बड़ियों (एचटीटीपी स्टेटस कोड 400-499) को गिना जाता है. हालांकि, 429 को छोड़कर.
- कोटा हर मिनट के हिसाब से तय किए जाते हैं. हालांकि, ये मिनट घड़ी के हिसाब से नहीं होते.
निगरानी का कोटा
Google Cloud Console पर, इन तरीकों से कोटा, इस्तेमाल, और गड़बड़ियां देखी जा सकती हैं:
- Google Cloud कंसोल पर जाएं.
- एपीआई और सेवाएं को चुनें.
- टेबल की सूची में से, Firebase Cloud Messaging API चुनें.
- कोटा और सिस्टम की सीमाएं को चुनें.
कोटा बढ़ाने का अनुरोध करना
कोटा बढ़ाने का अनुरोध करने से पहले, पक्का करें कि:
- आपका इस्तेमाल, लगातार पांच मिनट तक हर दिन कोटे के 80% से ज़्यादा हो.
- क्लाइंट की गड़बड़ियों का अनुपात 5% से कम हो. खास तौर पर, पीक ट्रैफ़िक के दौरान.
- आपने एक साथ कई मैसेज भेजने के सबसे सही तरीके अपनाए हों.
अगर आपने ये शर्तें पूरी की हैं, तो कोटा बढ़ाने का अनुरोध सबमिट किया जा सकता है. इसके तहत, आपको ज़्यादा से ज़्यादा 25% का कोटा मिल सकता है. FCM आपके अनुरोध को पूरा करने की पूरी कोशिश करेगा. हालांकि, कोटा बढ़ाने की कोई गारंटी नहीं दी जा सकती.
अगर आपको किसी लॉन्च या कुछ समय के लिए होने वाले इवेंट की वजह से, डाउनस्ट्रीम मैसेजिंग के लिए ज़्यादा कोटा चाहिए, तो कम से कम 15 दिन पहले कोटा का अनुरोध करें. इससे हमें अनुरोध को पूरा करने के लिए काफ़ी समय मिल जाएगा. बड़े अनुरोधों (हर मिनट 1.8 करोड़ से ज़्यादा मैसेज) के लिए, कम से कम 30 दिन पहले सूचना देना ज़रूरी है. हम हर साल सिर्फ़ दो अस्थायी कोटा इवेंट को मंज़ूरी दे सकते हैं. पूरे साल के लिए, अस्थायी कोटा की कुल अवधि 30 दिनों से ज़्यादा नहीं होनी चाहिए. लॉन्च और खास इवेंट के अनुरोधों पर, अब भी क्लाइंट के अनुरोधों में हुई गड़बड़ियों का अनुपात और सबसे सही तरीकों से जुड़ी शर्तें लागू होती हैं.
ज़्यादा जानने के लिए, FCM कोटा देखें.
विषय के हिसाब से मैसेज भेजने की सीमाएं और फ़ैनआउट थ्रॉटलिंग
ज़्यादा जानकारी के लिए, विषय के हिसाब से मैसेज भेजने के कोटे और सीमाएं देखें.
मैसेज थ्रॉटलिंग को छोटा किया जा सकता है
छोटे किए जा सकने वाले मैसेज में बताया गया है कि ये ऐसे सूचनाएं होती हैं जिनमें कोई कॉन्टेंट नहीं होता. इन्हें एक-दूसरे के ऊपर छोटा करके दिखाया जाता है. अगर कोई डेवलपर किसी ऐप्लिकेशन को एक ही मैसेज बार-बार भेजता है, तो हम मैसेज भेजने में देरी करते हैं. इससे, उपयोगकर्ता के डिवाइस की बैटरी पर पड़ने वाले असर को कम किया जा सकता है.
उदाहरण के लिए, अगर किसी एक डिवाइस पर ईमेल सिंक करने के लिए कई नए अनुरोध भेजे जाते हैं, तो हम अगले ईमेल सिंक करने के अनुरोध को कुछ मिनटों के लिए रोक सकते हैं. इससे डिवाइस, कम औसत दर पर सिंक हो पाएगा. इस थ्रॉटलिंग को सिर्फ़ इसलिए किया जाता है, ताकि उपयोगकर्ता को बैटरी पर पड़ने वाले असर को कम किया जा सके.
अगर आपको एक साथ कई मैसेज भेजने हैं, तो हो सकता है कि नॉन-कोलैप्स होने वाले मैसेज आपके लिए सही विकल्प हों. ऐसे मैसेज के लिए, बैटरी की खपत कम करने के लिए, मैसेज में कॉन्टेंट शामिल करना न भूलें.
हम हर ऐप्लिकेशन के लिए, हर डिवाइस पर ज़्यादा से ज़्यादा 20 छोटे किए जा सकने वाले मैसेज भेज सकते हैं. इसके बाद, हर तीन मिनट में एक मैसेज भेजा जा सकता है.
किसी एक डिवाइस पर मैसेज भेजने की ज़्यादा से ज़्यादा दर
Android पर, किसी एक डिवाइस से हर मिनट ज़्यादा से ज़्यादा 240 मैसेज और हर घंटे ज़्यादा से ज़्यादा 5,000 मैसेज भेजे जा सकते हैं. इस थ्रेशोल्ड को ज़्यादा इसलिए रखा गया है, ताकि कम समय में ट्रैफ़िक में अचानक होने वाली बढ़ोतरी को मैनेज किया जा सके. जैसे, जब उपयोगकर्ता चैट पर तेज़ी से इंटरैक्ट कर रहे हों. इस सीमा की वजह से, डिवाइस की बैटरी को गलती से खत्म होने से रोका जा सकता है. ऐसा इसलिए, क्योंकि इससे मैसेज भेजने के लॉजिक में होने वाली गड़बड़ियों को रोका जा सकता है.
iOS के लिए, जब दर APNs की सीमाओं से ज़्यादा हो जाती है, तो हम गड़बड़ी का मैसेज दिखाते हैं.