अपस्टैश काफ्का और मोंगोडीबी कनेक्टर के साथ एक कम विलंबता सेगमेंटेशन प्लेटफ़ॉर्म का निर्माण
परिचय
- एक विभाजन मंच ग्राहकों, उत्पादों और अन्य प्रासंगिक डेटा को समझने और वर्गीकृत करने में महत्वपूर्ण भूमिका निभाता है।
- विभाजन में कुछ मानदंडों के आधार पर एक बड़े समूह को छोटे, अधिक सजातीय उपसमूहों में विभाजित करना शामिल है।
- यहां विभिन्न डोमेन में विभाजन प्लेटफार्मों के कुछ उदाहरण दिए गए हैं, उदाहरण के लिए, वैयक्तिकृत विपणन रणनीतियों, लक्षित प्रचार और अधिक अनुकूलित खरीदारी अनुभव के लिए ग्राहक विभाजन।
सामग्री तालिका
- आवश्यकताओं को समझना
- बुनियादी वास्तुकला
- वास्तुशिल्प घटक
- डिज़ाइन चुनौतियाँ
- प्रस्तावित समाधान
- समापन नोट्स
1. आवश्यकताओं को समझना
<पी> ई-कॉमर्स में ग्राहक खंडों के लिए कम-विलंबता विभाजन मंच डिजाइन करना वास्तविक समय प्रसंस्करण, उपयोगकर्ता अनुभव और ग्राहक व्यवहार की गतिशील प्रकृति से संबंधित विशिष्ट चुनौतियों का परिचय देता है। इस संदर्भ में आपको कुछ चुनौतियों का सामना करना पड़ सकता है: - <पी> बड़े और गतिशील डेटासेट पी>
- ई-कॉमर्स प्लेटफ़ॉर्म ग्राहक प्रोफ़ाइल, उत्पाद कैटलॉग और लेनदेन इतिहास सहित बड़े और लगातार बदलते डेटासेट से निपटते हैं।
- कम विलंबता बनाए रखते हुए वास्तविक समय में इन विशाल डेटासेट को प्रबंधित और संसाधित करना एक महत्वपूर्ण चुनौती है।
- <पी> स्केलेबिलिटी पी>
- विभिन्न कार्यभार को संभालने के लिए स्केलेबिलिटी के लिए डिज़ाइन करना आवश्यक है। यह सुनिश्चित करना कि सिस्टम विलंबता का त्याग किए बिना अधिक प्रसंस्करण इकाइयों को जोड़कर क्षैतिज रूप से स्केल कर सकता है, इसके लिए सावधानीपूर्वक वास्तुकला योजना की आवश्यकता होती है।
- <पी> अतुल्यकालिक प्रसंस्करण पी>
- एसिंक्रोनस प्रोसेसिंग का लाभ उठाने से घटकों को अलग करने और समग्र सिस्टम प्रतिक्रिया में सुधार करने में मदद मिल सकती है। हालाँकि, जटिलताओं या देरी के बिना अतुल्यकालिक संचार को प्रबंधित करने के लिए सावधानीपूर्वक डिजाइन की आवश्यकता होती है।
- <पी> डेटा प्रवाह और पाइपलाइन पी>
- कम-विलंबता प्रणालियों के लिए एक कुशल डेटा प्रवाह और प्रसंस्करण पाइपलाइन को डिजाइन करना महत्वपूर्ण है।
- घटकों के बीच पारगमन में डेटा खर्च होने वाले समय को कम करना और प्रसंस्करण चरणों के अनुक्रम को अनुकूलित करने से समग्र विलंबता पर महत्वपूर्ण प्रभाव पड़ सकता है।
- <पी> माइक्रोसर्विसेज आर्किटेक्चर पी>
- माइक्रोसर्विसेज आर्किटेक्चर को लागू करने से स्केलेबिलिटी और लचीलापन बढ़ सकता है। हालाँकि, विलंबता शुरू किए बिना माइक्रोसर्विसेज के बीच निर्बाध संचार सुनिश्चित करना चुनौतीपूर्ण हो सकता है।
- कुशल एपीआई डिजाइन करना और अंतर-सेवा संचार का प्रबंधन करना महत्वपूर्ण है।
2. बुनियादी वास्तुकला
<पी> सेगमेंटेशन प्लेटफ़ॉर्म में तीन प्रमुख उपप्रणालियाँ शामिल हैं:
- <पी> कंप्यूटर सेवा (ऑफ़लाइन बैच कंप्यूट/ऑनलाइन कंप्यूट): पी>
- स्पार्क जॉब्स का उपयोग करके कच्चे डेटा से उपयोगकर्ता खंड निकालता है।
- स्पार्क जॉब डेटा लेक से डेटा को पुनः प्राप्त करता है, साफ़ करता है और मान्य करता है।
- परिणामस्वरूप डेटा सर्विंग सब-सिस्टम को भेजा जाता है।
- <पी> अंतर्ग्रहण सेवा: पी>
- गणना किए गए सेगमेंट को कंप्यूट सेवा से सेगमेंटेशन सेवा में स्थानांतरित करता है।
- सेगमेंट के भीतर उपयोगकर्ताओं को शामिल करने और बाहर करने का प्रबंधन करता है।
- <पी> सेगमेंट सेवा (सर्व लेयर): पी>
- <पी> उपयोगकर्ता सेवा या छूट सेवा के लिए विशिष्ट आवश्यकताओं के आधार पर उपयोगकर्ता खंड प्रदान करता है।
- <पी> डिस्काउंट सेवा उपयोगकर्ता आईडी के आधार पर क्वेरी कर सकती है और उपलब्ध छूट की गणना कर सकती है
| उपयोगकर्ता आईडी | सेगमेंट आईडी | पर बनाया गया | 2521सेगमेंट Xदिसंबर 3, 20232788सेगमेंट Yदिसंबर 3, 20233943सेगमेंट Zदिसंबर 3, 2023
3. वास्तुशिल्प घटक
<पी> सेगमेंटेशन प्लेटफ़ॉर्म में निम्नलिखित प्रमुख घटक शामिल हैं:
- <पी> डेटा लेक - S3 पी>
- डेटा लेक के रूप में सेवा के लिए S3 एक व्यापक रूप से अपनाया गया और बहुमुखी विकल्प है। इसकी स्केलेबल और टिकाऊ वस्तु भंडारण क्षमताएं इसे विभिन्न प्रकार के डेटा की बड़ी मात्रा में कुशलतापूर्वक भंडारण और प्रबंधन के लिए उपयुक्त बनाती हैं।
- डेटा लेक के रूप में S3 का उपयोग करके, संगठन डेटा भंडारण, पुनर्प्राप्ति और प्रबंधन के लिए इसकी मजबूत सुविधाओं से लाभ उठा सकते हैं, जिससे यह विभिन्न डेटा-केंद्रित अनुप्रयोगों और आर्किटेक्चर में एक लोकप्रिय विकल्प बन जाता है।
- <पी> ट्रांजैक्शनल डेटाबेस MongoDB पी>
- MongoDB का दस्तावेज़-उन्मुख मॉडल लेनदेन संबंधी उपयोग के मामलों के लिए फायदेमंद है क्योंकि यह आपको JSON के समान प्रारूप में जटिल डेटा संरचनाओं को संग्रहीत करने की अनुमति देता है। यह लचीलापन उन अनुप्रयोगों के लिए विशेष रूप से उपयोगी है जहां डेटा संरचना समय के साथ विकसित हो सकती है।
- <पी> अपस्टैश काफ्का क्लस्टर पी>
- आप अपने वेब एप्लिकेशन से ट्रैफ़िक (क्लिक) ईवेंट को अपस्टैश काफ्का पर स्ट्रीम कर सकते हैं, फिर आप उन्हें आगे की प्रक्रिया के लिए डेटा लेक में संग्रहीत कर सकते हैं।
- अपस्टैश काफ्का पहली सर्वर रहित काफ्का पेशकश है। भुगतान-प्रति-अनुरोध मॉडल के साथ, आप सैकड़ों डॉलर का भुगतान किए बिना पूरी तरह से प्रबंधित काफ्का क्लस्टर प्राप्त कर सकते हैं। निःशुल्क टियर के साथ, आप अपना क्रेडिट कार्ड दर्ज किए बिना कुछ ही सेकंड में काफ्का क्लस्टर बना सकते हैं। जब आप अपने ऐप पर ध्यान केंद्रित करते हैं तो अपस्टैश टीम उपलब्धता, रखरखाव, स्केलिंग, अपग्रेड और अन्य सभी कठिन चीजों का ख्याल रखती है।
- <पी> अपस्टैश MongoDB सोर्स कनेक्टर पी>
- MongoDB सोर्स कनेक्टर एक घटक है जिसका उपयोग डेटा एकीकरण और स्ट्रीमिंग प्लेटफ़ॉर्म, जैसे अपाचे काफ्का कनेक्ट, में MongoDB डेटाबेस से कनेक्ट करने और वास्तविक समय में परिवर्तनों या घटनाओं को कैप्चर करने के लिए किया जाता है।
- अपस्टैश MongoDB सोर्स कनेक्टर MongoDB से दूसरे सिस्टम या प्लेटफ़ॉर्म पर डेटा की आवाजाही की सुविधा प्रदान करता है, जिससे निर्बाध डेटा एकीकरण और विश्लेषण की अनुमति मिलती है।
- <पी> अपाचे स्पार्क पी>
- अपाचे स्पार्क एकल-नोड मशीनों या क्लस्टर पर डेटा इंजीनियरिंग, डेटा विज्ञान और मशीन लर्निंग को निष्पादित करने के लिए एक बहु-भाषा इंजन है।
- अपस्टैश काफ्का को अपाचे स्पार्क के साथ एकीकृत करके, जो अपस्टैश द्वारा बॉक्स से बाहर प्रदान किया जाता है, आप अपने वेब एप्लिकेशन से ट्रैफ़िक (क्लिक) ईवेंट को अपस्टैश काफ्का पर स्ट्रीम करेंगे, फिर आप वास्तविक समय पर इसका विश्लेषण कर सकते हैं।
- अपाचे स्पार्क उपयोगकर्ता खंडों के अपडेट संसाधित करने के लिए जिम्मेदार होगा। एयरोस्पाइक डेटाबेस को अपडेट करने के लिए प्रचारित किए जाने से पहले ये अपडेट अपस्टैश काफ्का को लिखे जाएंगे।
4. डिज़ाइन चुनौतियाँ
<पी> सेगमेंटेशन इंजन की बढ़ती स्वीकार्यता और उपयोग संभावित रूप से सिस्टम के लिए कुछ चुनौतियाँ पेश कर सकता है। - क्यूपीएस लिखें बाधा:अधिक और बड़े खंडों के निर्माण से प्रति सेकंड लिखित क्वेरी (क्यूपीएस) में बाधा उत्पन्न हो सकती है, जिसके परिणामस्वरूप खंड निर्माण के लिए लंबे समय तक प्रतीक्षा करनी पड़ सकती है।
- कम विलंबता अनुरोध:कुछ संचार भेजने के लिए बहुत कम विलंबता प्राप्त करना महत्वपूर्ण है, खासकर जब यह निर्धारित करना कि उपयोगकर्ता किसी विशिष्ट खंड से संबंधित है या नहीं।
- <पी> विलंबता पढ़ें पी>
- <पी> इसके अलावा, जैसे-जैसे प्लेटफ़ॉर्म विकसित हो रहा है, पढ़ने के लिए आवश्यक <50ms विलंबता के साथ भी, ऐसी आशंका है कि यह गति कुछ सेवाओं और उनके भविष्य के उपयोग के मामलों के लिए पर्याप्त नहीं हो सकती है।
- <पी> उदाहरण के लिए, अधिसूचना सेवा को संचार भेजने से पहले उपयोगकर्ता खंड सदस्यता निर्धारित करने के लिए त्वरित जांच की आवश्यकता होती है। प्रत्येक संचार अनुरोध के लिए बढ़ी हुई विलंबता का परिचय भविष्य में अस्वीकार्य होने का अनुमान है।
- <पी> काफ्का इन्फ्रास्ट्रक्चर का प्रबंधन पी>
- <पी> लेन-देन स्रोतों से प्रति मिनट लाखों घटनाओं को संभालना काफ्का बुनियादी ढांचे का उपयोग करते समय वास्तव में चुनौतियां पैदा कर सकता है, और ऐसे उच्च थ्रूपुट के प्रभावी प्रबंधन के लिए विभिन्न कारकों पर सावधानीपूर्वक विचार करने की आवश्यकता होती है।
- <पी> उच्च-थ्रूपुट काफ्का बुनियादी ढांचे को बनाए रखने के लिए नियमित प्रदर्शन परीक्षण और अनुकूलन महत्वपूर्ण हैं।
- <पी> MongoDB परिवर्तन डेटा कैप्चर पी>
- <पी> वेब अनुप्रयोगों से घटनाओं को एकत्रित करना, विशेष रूप से जब उन्हें MongoDB जैसे पारंपरिक लेनदेन डेटाबेस में संग्रहीत किया जाता है, और फिर उन्हें डेटा लेक में धकेलना वास्तव में कुछ प्रयास शामिल कर सकता है।
- <पी> MongoDB द्वारा प्रदान किए गए परिवर्तन डेटा कैप्चर तंत्र का उपयोग करें या डेटाबेस में परिवर्तनों को कैप्चर करने के लिए एक कस्टम समाधान लागू करें।
5. प्रस्तावित समाधान
- <पी> पढ़ने की विलंबता में सुधार के लिए वितरित कैश एयरोस्पाइक पी>
- <पी> एयरोस्पाइक में उपयोगकर्ता के खंड शामिल होंगे जहां उपयोगकर्ता आईडी उपयोगकर्ता खंडों तक पहुंचने के लिए प्राथमिक कुंजी के रूप में कार्य करती है।
- <पी> इसके अतिरिक्त, आप खंड आईडी पर द्वितीयक अनुक्रमणिका भी लागू कर सकते हैं, खंड उपयोगकर्ताओं की पुनर्प्राप्ति को सुव्यवस्थित कर सकते हैं और खंड उपयोगकर्ताओं को अलग से संग्रहीत करने की आवश्यकता को समाप्त कर सकते हैं
- <पी> इसके अलावा, डिज़ाइन का लक्ष्य विलंबता आवश्यकताओं को पूरा करना है, जिसमें कैश के रूप में कार्य करने की क्षमता है, जो संभावित रूप से रेडिस की आवश्यकता को प्रतिस्थापित करता है।
- <पी> वर्तमान एयरोस्पाइक को अपस्टैश रेडिस से बदलने के लिए डेटा के दो सेटों को प्रबंधित करने की आवश्यकता होगी:खंड उपयोगकर्ता और उपयोगकर्ता खंड।
- <पी> सर्वर रहित अपस्टैश काफ्का काफ्का बुनियादी ढांचे का प्रबंधन करेगा पी>
- <पी> अपस्टैश काफ्का के साथ, आपको पूरी तरह से प्रबंधित सेवा मिलती है। इसका तात्पर्य यह है कि अपस्टैश काफ्का क्लस्टर चलाने में शामिल सभी तकनीकी कार्यों, जैसे सर्वर प्रोविजनिंग, स्केलिंग और रखरखाव को संभालता है।
- <पी> इससे आपको बुनियादी ढांचे को स्थापित करने, सब कुछ सही ढंग से काम करने और समय के साथ इसे बनाए रखने जैसी चीजों के बारे में चिंता करने की आवश्यकता दूर हो जाती है।
- <पी> यह आपको अपनी विशिष्ट आवश्यकताओं और उद्देश्यों के लिए काफ्का का लाभ उठाने पर ध्यान केंद्रित करने की अनुमति देता है। बुनियादी ढांचे के प्रबंधन के बोझ के बिना, अब आप अपनी ऊर्जा को अपने एप्लिकेशन की समग्र गुणवत्ता बढ़ाने में लगा सकते हैं, खासकर तेजी से विकसित हो रहे विकास परिवेश में।
- <पी> कीमत का पैमाना शून्य: यदि आप सक्रिय रूप से इसका उपयोग नहीं कर रहे हैं तो एक वास्तविक सर्वर रहित पेशकश को आपसे शुल्क नहीं लेना चाहिए। मूल्य-प्रति-अनुरोध हमारी सबसे उत्कृष्ट विशेषता है। आप पहले दिन से ही इस मूल्य निर्धारण मॉडल में फिट होने के लिए अपने उत्पादों और बुनियादी ढांचे को डिजाइन कर रहे हैं। इसके लिए निश्चित लागत को कम करने की आवश्यकता है, जो काफ्का जैसे जानवर के लिए काफी कठिन है।
- <पी> उपयोगकर्ता के लिए कोई परिचालन बोझ नहीं: उपयोगकर्ता काफ्का विषय बनाता है और उसका उपयोग शुरू करता है। उच्च उपलब्धता, स्केलेबिलिटी, अपग्रेड, बैकअप... यह सब हमारी जिम्मेदारी है।
- <पी> कनेक्शन रहित: सर्वर रहित फ़ंक्शंस स्थिति को होल्ड नहीं करते हैं. इसलिए आपको स्टेटलेस कनेक्शन के साथ अपने डेटा तक पहुंचने में सक्षम होना चाहिए। हमारी काफ्का पेशकश काफ्का टीसीपी प्रोटोकॉल का समर्थन करती है इसलिए सभी काफ्का ग्राहक अपस्टैश के साथ काम करेंगे। आपके पास AWS Lambda या Cloudflare Workers जैसे कनेक्शन रहित वातावरण को सक्षम करने के लिए एक अंतर्निहित REST API भी है।
- <पी> MongoDB CDC, Upstash MongoDB सोर्स कनेक्टर का उपयोग कर रहा है पी>
- <पी> काफ्का कनेक्ट अपाचे काफ्का और अन्य प्रणालियों के बीच कोड की एक भी पंक्ति लिखे बिना डेटा स्ट्रीम करने का एक उपकरण है। काफ्का सिंक कनेक्टर्स के माध्यम से, आप अपना डेटा किसी अन्य स्टोरेज में निर्यात कर सकते हैं। काफ्का स्रोत कनेक्टर्स के माध्यम से, आप अन्य प्रणालियों से हमारे काफ्का विषयों पर डेटा खींच सकते हैं।
- <पी> काफ्का कनेक्टर्स को स्वयं होस्ट किया जा सकता है लेकिन इसके लिए आपको अतिरिक्त प्रक्रियाओं/मशीनों को सेटअप और बनाए रखने की आवश्यकता होती है। अपस्टैश आपके काफ्का क्लस्टर के लिए कनेक्टर्स के होस्टेड संस्करण प्रदान करता है। इससे आप पर एक अतिरिक्त सिस्टम को बनाए रखने का बोझ आ जाएगा और यह अधिक प्रदर्शनशील भी होगा क्योंकि यह आपके क्लस्टर के नजदीक होगा।
6. समापन नोट्स
<पी> यह ब्लॉग पोस्ट अपस्टैश द्वारा प्रदान की गई तकनीकों का लाभ उठाते हुए कम-विलंबता विभाजन प्लेटफ़ॉर्म के डिज़ाइन सिद्धांतों की पड़ताल करता है। बुनियादी ढांचे को निर्बाध रूप से स्केल करने के लिए इंजीनियर किया गया है, जो लाखों उपयोगकर्ताओं को समायोजित करता है और डेटा लेक में संग्रहीत टेराबाइट डेटा को संभालता है।