मुख्य सामग्री पर जाएं

उच्च-वॉल्यूम वाली सामाजिक डेटा घटनाओं के लिए योजना कैसे बनाएं

राष्ट्रीय और वैश्विक स्तर की बड़ी घटनाओं के दौरान अक्सर सोशल मीडिया प्लेटफ़ॉर्म पर उपयोगकर्ता गतिविधि में तेज़ उछाल आता है। कभी-कभी इन घटनाओं की जानकारी पहले से होती है, जैसे Super Bowl, राजनीतिक चुनाव, और दुनिया भर में नए साल के उत्सव। वहीं, कई बार वॉल्यूम में यह उछाल अप्रत्याशित घटनाओं की वजह से आता है, जैसे प्राकृतिक आपदाएँ, अचानक होने वाली राजनीतिक घटनाएँ, पॉप संस्कृति के चर्चित पल, या COVID-19 जैसी वैश्विक स्वास्थ्य महामारियाँ। उपयोगकर्ता गतिविधि में ये उछाल कभी-कभी बहुत कम समय के लिए होते हैं (सेकंडों में मापे जाने वाले), जबकि कभी ये कई मिनटों तक भी बने रह सकते हैं। इनका कारण चाहे जो भी हो, X से डेटा प्राप्त करने वाले ऐप्लिकेशनों पर इनके प्रभाव पर विचार करना महत्वपूर्ण है। यहाँ कुछ सर्वोत्तम तरीके दिए गए हैं, जो आपकी टीम को उच्च-वॉल्यूम वाली सामाजिक डेटा घटनाओं के लिए तैयार होने में मदद करेंगे।

अपने मौजूदा फ़िल्टर की गई स्ट्रीम नियमों की समीक्षा करें

  • ज़्यादा वॉल्यूम वाली घटनाओं के दौरान कुछ कीवर्ड अचानक बहुत बढ़ सकते हैं, जैसे किसी बड़े खेल आयोजन को प्रायोजित करने पर किसी ब्रांड के उल्लेख।
  • ऐसे किसी भी अनावश्यक या बहुत सामान्य नियमों से सावधानीपूर्वक बचें, जो अनावश्यक गतिविधि वॉल्यूम पैदा कर सकते हैं।
  • ज्ञात उच्च-वॉल्यूम घटनाओं से पहले अपने क्लाइंट्स से बात करने पर विचार करें, ताकि वे उचित योजना बना सकें।  

अपने एप्लिकेशन का स्ट्रेस टेस्ट करें

यह मानकर चलें कि अचानक बढ़ने वाला वॉल्यूम औसत दैनिक खपत के 5-10 गुना तक पहुँच सकता है। आपके नियम-समुच्चय के आधार पर, यह वृद्धि इससे भी काफी अधिक हो सकती है।

कनेक्शनों के लिए डिलीवरी कैप समझें

फ़्लो और डिलीवरी कैप, एक्सेस स्तरों पर आधारित होते हैं। इसके परिणामस्वरूप स्ट्रीम्स के लिए डिलीवर होने वाले परिणामों की मात्रा स्थिर रहती है।
  • Academic: 250 पोस्ट्स/सेकंड
  • Enterprise: पोस्ट्स/सेकंड एक्सेस स्तर पर निर्धारित किए जाते हैं

कनेक्टेड बने रहने के लिए अनुकूलित करें

स्ट्रीम्स के साथ, डेटा छूटने से बचने के लिए कनेक्टेड रहना ज़रूरी है। आपके क्लाइंट ऐप्लिकेशन को डिसकनेक्शन का पता लगाने में सक्षम होना चाहिए और उसमें कनेक्शन को तुरंत फिर से स्थापित करने का लॉजिक होना चाहिए। यदि दोबारा कनेक्ट करने का प्रयास विफल हो जाए, तो exponential backoff का उपयोग करें।  

अपनी ओर से अंतर्निहित बफ़रिंग जोड़ें

उच्च-वॉल्यूम वाली स्ट्रीम्स को संभालने के लिए मल्टी-थ्रेडेड एप्लिकेशन बनाना एक महत्वपूर्ण रणनीति है। व्यापक स्तर पर, डेटा स्ट्रीम्स को प्रबंधित करने की एक सर्वोत्तम पद्धति यह है कि एक अलग थ्रेड/प्रोसेस हो, जो स्ट्रीमिंग कनेक्शन स्थापित करे और फिर प्राप्त JSON गतिविधियों को किसी मेमोरी संरचना या बफ़र्ड स्ट्रीम रीडर में लिखे। यह ‘हल्का’ स्ट्रीम-प्रोसेसिंग थ्रेड आने वाले डेटा को संभालने के लिए ज़िम्मेदार होता है, जिसे आवश्यकता के अनुसार मेमोरी में बफ़र किया जा सकता है और जो ज़रूरत पड़ने पर बढ़ या घट सकता है। इसके बाद, एक अलग थ्रेड उस हैश को संसाधित करता है और JSON को पार्स करने, डेटाबेस राइट्स की तैयारी करने, या आपकी एप्लिकेशन को जो भी अन्य काम करने हों, उनका ‘भारी’ हिस्सा संभालता है।  

वैश्विक घटनाएँ = वैश्विक समय क्षेत्र

घटनाएँ कामकाजी घंटों के बाद या सप्ताहांत में हो सकती हैं, इसलिए सुनिश्चित करें कि आपकी टीम आपके सामान्य कामकाजी घंटों के बाहर आने वाले अचानक ट्रैफ़िक स्पाइक्स के लिए तैयार हो।