आज, सबसे बुनियादी वेब और मोबाइल एप्लिकेशन भी बहुत अधिक डेटा की खपत करते हैं। इस डेटा का आदान-प्रदान करने और उस पर कार्य करने की कुंजी एक मैसेजिंग सिस्टम है जो इवेंट-संचालित आर्किटेक्चर द्वारा समर्थित है।
एक घटना-संचालित प्रणाली संदेश समाधान और प्रसंस्करण को स्केलेबल और अतुल्यकालिक होने में सक्षम बनाती है। अतुल्यकालिक सिस्टम अधिक अनुरोधों को संभाल सकता है, क्योंकि प्रत्येक अनुरोध को पृष्ठभूमि में नियंत्रित किया जाता है।
जब सर्वर से अनुरोध किया जाता है, तो इसे कतार में जोड़ा जाता है, जहां एक प्रोसेसर इसे पढ़ेगा। यह संगठनों को एक अलग क्लस्टर में अनुरोधों को संसाधित करके प्रति सेकंड सैकड़ों-हजारों या यहां तक कि लाखों अनुरोधों को स्वीकार करने वाली प्रणाली बनाने में सक्षम बनाता है।
उद्योग ने कई संदेश-दलाल प्रणाली और विषय-संचालित प्रकाशन-सदस्यता (पब-उप) प्लेटफॉर्म तैयार किए हैं जो इस घटना और संदेश-संचालित प्रारूप का पालन करते हैं। अपाचे काफ्का और अपाचे पल्सर वितरित संदेश वितरण और स्ट्रीमिंग सिस्टम के दो व्यापक रूप से उपयोग किए जाने वाले उदाहरण हैं।
काफ्का और पल्सर दोनों एक पब-सब पैटर्न पर बनाए गए हैं जिनका उपयोग आप हजारों कनेक्टेड क्लाइंट्स को संदेश वितरण के लिए कर सकते हैं। दोनों संदेशों को खोए नहीं हैं यह सुनिश्चित करने के लिए एक सतत भंडारण मॉडल प्रदान करते हैं, और दोनों संदेशों को संग्रहीत करने और संसाधित करने के लिए विभाजन का उपयोग करते हैं।
जबकि काफ्का और पल्सर कई मायनों में समान हैं, उनकी क्षमताओं में कुछ उल्लेखनीय अंतर हैं - विशेष रूप से जब बड़ी मात्रा में डेटा का प्रबंधन करते हैं, वास्तविक समय के अनुप्रयोग बनाते हैं और बड़े पैमाने पर विकसित होते हैं।
काफ्का कई लाभ प्रदान करता है, लेकिन मापनीयता और विकास के लिए पल्सर का समर्थन बेजोड़ है। और विकास के एक निश्चित बिंदु पर, इष्टतम विकल्प काफ्का को अनुकूलित करने का प्रयास नहीं करना है, बल्कि इसके साथ भाग लेना है। यहां, हम काफ्का और पल्सर के बीच के अंतरों की तुलना करेंगे, यह प्रदर्शित करते हुए कि कैसे काफ्का का उपयोग करते समय स्केलेबिलिटी के लिए एक तार्किक अगला कदम पल्सर पर स्विच करना है।
काफ्का सॉफ्टवेयर आर्किटेक्चर में वितरित पब-उप पैटर्न के लिए वास्तविक है। काफ्का का उपयोग करने वाला एक संगठन हजारों संदेशों को संभालने और एक ही समय में कई उपभोक्ताओं को संदेश प्रसारित करने में सक्षम है।
काफ्का के कई लाभ हैं , लेकिन बड़े पैमाने पर प्रयास करते समय इसकी कुछ सीमाएँ भी हैं। आइए अपाचे काफ्का के साथ निर्मित अनुप्रयोगों को स्केल करने का प्रयास करते समय आपके सामने आने वाली कुछ चुनौतियों का पता लगाएं।
काफ्का में अपने अनुप्रयोगों को स्केल करते समय काफ्का की वास्तुकला पहली चुनौती का सामना करेगी: भंडारण।
स्टेटफुल ब्रोकर्स पहला कारण है कि एक संगठन को बड़े पैमाने पर चुनौतीपूर्ण लगता है। काफ्का में डेटा लीडर नोड में संग्रहीत होता है, जबकि डेटा के विभाजन स्थानीय डिस्क पर संग्रहीत होते हैं। डेटा नोड्स से जुड़ा हुआ है, और काफ्का में दलाल स्टेटफुल हैं। इसका मतलब यह है कि एक बार जब लीडर नोड अधिकतम स्टोरेज क्षमता तक पहुँच जाता है, तो क्लस्टर तब तक अधिक संदेश स्वीकार नहीं कर सकता जब तक कि इन्फ्रास्ट्रक्चर स्टोरेज को नहीं बढ़ाया जाता। यह चुनौतीपूर्ण है, क्योंकि लगातार बढ़ते परिवेश में, एक क्लस्टर को कई उन्नयन की आवश्यकता होगी।
इस चुनौती से पार पाने का एक तरीका एक बड़ा स्टोरेज क्लस्टर खरीदना है, जो बहुत महंगा है।
इसके अतिरिक्त, इस आर्किटेक्चर के आधार पर, एक बार जब प्लेटफ़ॉर्म अधिकतम संग्रहण या मेमोरी सीमा तक पहुँच जाता है, तो यह नए आने वाले संदेशों को स्वीकार नहीं कर सकता है। इससे व्यवसाय-महत्वपूर्ण अनुप्रयोगों के लिए भारी नुकसान हो सकता है। काफ्का की वास्तुकला बहुत सारे संदेशों को स्वीकार करने और प्रसारित करने के लिए डिज़ाइन की गई है। दीर्घकालिक डेटा संग्रहण प्राथमिकता नहीं है। नतीजतन, काफ्का एप्लिकेशन को स्केल करना बहुत चुनौतीपूर्ण है क्योंकि यह आपको आवश्यक भंडारण प्रदान नहीं कर सकता है - कम से कम भारी कीमत टैग के बिना नहीं।
काफ्का को प्रबंधित करना चुनौतीपूर्ण है क्योंकि इसमें गतिविधि की निगरानी, संदेश प्रसंस्करण और डेटा दृढ़ता के लिए आवश्यक सुविधाएँ शामिल नहीं हैं।
काफ्का हेडलेस मैसेज ब्रॉडकास्टिंग सिस्टम के लिए चमकता है, जहां आपको डिलीवरी से पहले किसी मैसेज को म्यूट करने की जरूरत नहीं होती है। हालाँकि, मान लीजिए कि आपको उपभोक्ताओं को अग्रेषित करने से पहले किसी संदेश को संसाधित करने की आवश्यकता है; इसके लिए अतिरिक्त प्लेटफार्मों पर निर्भरता की आवश्यकता होती है, जिससे काफ्का के साथ संदेशों को संसाधित करना अधिक चुनौतीपूर्ण और जटिल हो जाता है।
इसके अलावा, ऊपर सूचीबद्ध अन्य प्लेटफार्मों की भागीदारी आपके डेटा वितरण प्रणाली की जटिलता को काफी बढ़ा देती है, क्योंकि स्ट्रीमिंग प्लेटफॉर्म के प्रत्येक घटक को रखरखाव की आवश्यकता होती है और इसकी सीमाएँ होती हैं जो पूरे क्लस्टर पर लागू होती हैं। इसके अतिरिक्त, काफ्का समूहों के पास सीमित डेटा और संदेश की दृढ़ता है क्योंकि आपकी डेटा आवश्यकताएं समय के साथ बढ़ती हैं।
उद्यम मुख्य रूप से अपनी प्रदान की गई स्ट्रीमिंग सेवाओं के लिए काफ्का का उपयोग करते हैं। स्ट्रीमिंग एपीआई पब-उप संदेश वितरण के शीर्ष पर एक अद्वितीय व्यापार मामले का समर्थन करने के लिए लिखा गया है। काफ्का स्ट्रीम एपीआई एक स्टैंडअलोन उत्पाद है जो उद्यम ग्राहकों के लिए उन्नत सुविधाएँ प्रदान करता है। काफ्का स्ट्रीम्स की सबसे उल्लेखनीय विशेषता, लेन-देन , उद्यमों को संदेशों के प्रवाह द्वारा उत्पन्न आउटपुट की निरंतरता सुनिश्चित करने में मदद करती है। इस कारण से, काफ्का के प्रत्येक उपयोग के मामले में दो अलग-अलग एपीआई हैं।
उदाहरण के लिए, काफ्का स्ट्रीमिंग लाइब्रेरी उद्यमों को संदेशों के लिए "बिल्कुल एक बार" डिलीवरी प्रदान करने में सक्षम बनाती है। डिलीवरी गारंटी देती है कि काफ्का और पल्सर दोनों ऑफर हैं:
"बिल्कुल एक बार" वितरण गारंटी देता है कि प्रत्येक संदेश के लिए, एक संबद्ध आउटपुट होगा, जो उपभोक्ता के दुर्घटनाग्रस्त होने की स्थिति में संदेश को संसाधित करने की गारंटी देता है। हालांकि, उपभोक्ता एपीआई के साथ यह असंभव है, जो अनुप्रयोगों को काफ्का क्लस्टर में विषयों से डेटा की धाराओं को पढ़ने की अनुमति देता है, जिससे आपको प्लेटफॉर्म में अधिकांश सुविधाओं को लिखने की आवश्यकता होती है। इससे आपको अपने व्यवसाय के लिए आवश्यक सभी सुविधाओं के लिए एकल क्लाइंट लाइब्रेरी का उपयोग करना मुश्किल हो जाता है, जो तब तक टिकाऊ नहीं होता जब आप बड़े पैमाने पर काम कर रहे होते हैं।
ऊपर हाइलाइट की गई प्रत्येक काफ्का सीमा के लिए, पल्सर के पास एक समाधान है। निम्नलिखित अनुभागों में पल्सर के कुछ लाभों की रूपरेखा दी गई है।
पल्सर संदेश स्ट्रीमिंग और प्रकाशन सुविधाएँ प्रदान करता है जो काफ्का करता है, लेकिन डेटा को लंबे समय तक बनाए रखने की क्षमता जोड़ता है।
पल्सर अपाचे बुककीपर का उपयोग करके डेटा स्टोरेज की दृढ़ता प्रदान करता है। बुककीपर डेटा को बनाए रखता है और क्लस्टर के बाहर डेटा की दृढ़ता को ऑफ़लोड करने में मदद करता है। आप स्थानीय डिस्क की सीमाओं से परे डेटा और स्केल को स्टोर करने के लिए AWS S3 जैसे अन्य डेटा स्टोरेज माध्यमों का उपयोग कर सकते हैं, जिसका अर्थ है कि आप स्टोरेज चिंताओं के बिना आसानी से अपने एप्लिकेशन का विस्तार कर सकते हैं।
इसके अतिरिक्त, पल्सर में एक टियर स्टोरेज फीचर शामिल है जो डेटा को हॉट और कोल्ड स्टोरेज विकल्पों के बीच स्थानांतरित करने में मदद करता है; डेटा को तब तक कोल्ड स्टोरेज में रखा जा सकता है जब तक कि व्यापार की जरूरत हो। भंडारण विकल्पों के लिए क्लस्टर को बुनियादी ढांचे के आकार में निरंतर परिवर्तन की आवश्यकता नहीं है।
पल्सर डेटा के एक सेगमेंट को अपरिवर्तनीय बनाकर बुककीपर से पुराने संदेशों को स्वचालित रूप से एक सस्ते, कोल्ड स्टोरेज विकल्प में ले जाता है। अपरिवर्तनीय खंड को सस्ते भंडारण में ले जाया जा सकता है, प्रभावी रूप से पल्सर को अनंत मात्रा में डेटा स्वीकार करने में सक्षम बनाता है।
डेवलपर के दृष्टिकोण से, पल्सर सभी प्रमुख भाषाओं (जावा, पायथन, गो और सी #) के लिए एक एकीकृत, सरल क्लाइंट लाइब्रेरी प्रदान करता है। पुस्तकालय डेवलपर्स को मंच के साथ जल्दी से आरंभ करने में मदद करते हैं, जो कि बड़े पैमाने पर अनुप्रयोगों को विकसित और जारी करते समय महत्वपूर्ण है। पल्सर का बाइनरी प्रोटोकॉल क्लाइंट लाइब्रेरी की सुविधाओं को आवश्यकतानुसार बढ़ाता है, जिससे लाइब्रेरी विकास के लिए उपयुक्त हो जाती है। (यहाँ उपलब्ध और आधिकारिक तौर पर समर्थित पल्सर क्लाइंट लाइब्रेरी की सूची है। )
पल्सर फ़ंक्शंस एक आउट-ऑफ-द-बॉक्स सुविधा है जो डेवलपर्स को कस्टम कोड लिखने में सक्षम बनाती है जो अपाचे हेरॉन, अपाचे फ्लिंक या अपाचे स्टॉर्म जैसी प्रणाली को तैनात किए बिना संदेश स्ट्रीम में संदेशों को संसाधित कर सकती है।
पल्सर फ़ंक्शंस का उपयोग सर्वर रहित कनेक्टर फ्रेमवर्क पल्सर आईओ में किया जाता है, जिससे डेटा को पल्सर से और स्थानांतरित करना आसान हो जाता है। यह आउट-ऑफ़-बॉक्स सिस्टम पल्सर को अपाचे कैसेंड्रा जैसे बाहरी SQL और NoSQL डेटाबेस से कनेक्ट करने में सक्षम बनाता है।
इसके अतिरिक्त, यह संदेश प्रसंस्करण स्ट्रीम-नेटिव है, जिसका अर्थ है कि संदेश संसाधित होते हैं और उपभोक्ताओं को वितरित किए जाने से पहले क्लस्टर के अंदर परिवर्तित हो जाते हैं। क्योंकि पल्सर फ़ंक्शंस पल्सर मैसेजिंग सिस्टम का कंप्यूटिंग इन्फ्रास्ट्रक्चर है, वे व्यवसाय-स्तर के उद्देश्यों का समर्थन करते हैं, जिसमें डेवलपर उत्पादकता, आसान समस्या निवारण और परिचालन सादगी शामिल है - बड़े पैमाने पर काम करते समय एप्लिकेशन और टीम के प्रदर्शन के लिए महत्वपूर्ण गुण।
ऊपर उल्लिखित सुविधाओं और सेवाओं और मापनीयता पर उनके प्रभाव के अलावा, पल्सर विभिन्न सुविधाएँ प्रदान करता है जो इसे आपके उद्यमों की संदेश स्ट्रीमिंग और प्रकाशन आवश्यकताओं के लिए एक मापनीय विकल्प बनाती हैं।
पल्सर की भू-प्रतिकृति विशेषता पल्सर को अत्यधिक स्केलेबल बनाती है। क्लस्टर डेटा को दुनिया भर में कई स्थानों पर उपयोग के लिए दोहराता है, यदि कोई आपदा एप्लिकेशन को नीचे लाती है। प्रतिकृति तुल्यकालिक और साथ ही अतुल्यकालिक होने के लिए समर्थित है। अतुल्यकालिक प्रतिकृति तेज है लेकिन तुल्यकालिक प्रतिकृति की तुलना में कम डेटा स्थिरता गारंटी प्रदान करती है।
पल्सर ब्रोकर-प्रति-विषय अवधारणा का उपयोग करता है, यह सुनिश्चित करता है कि एक ही ब्रोकर किसी विषय के लिए सभी अनुरोधों को संभालता है। पल्सर आर्किटेक्चर दर्शाता है कि काफ्का क्लस्टर की तुलना में ब्रोकर-आधारित दृष्टिकोण सिस्टम के प्रदर्शन को कैसे बेहतर बनाता है।
काफ्का और पल्सर में कुछ समानताएँ हैं, लेकिन उपयोग करने के लिए किस प्लेटफॉर्म का चयन करते समय विचार करने लायक कुछ मूलभूत अंतर हैं - खासकर जब आपको मापनीयता की आवश्यकता हो।
काफ्का की वास्तुकला, भंडारण क्षमता और उपयोगिता कई चुनौतियां पेश करती हैं जो किसी संगठन की बढ़ने की क्षमता को बाधित कर सकती हैं। अपने काफ्का समूहों को एक बिंदु से आगे बढ़ाने की कोशिश करना महंगा हो जाता है और अक्सर इसके लायक होने की तुलना में अधिक परेशानी होती है। जिस तरह से यह डेटा को संग्रहीत करता है, जिस तरह से यह संदेश परिवर्तन का समर्थन करता है, पल्सर अगली पीढ़ी का है, काफ्का के लिए एकीकृत चुनौती है जो स्केलेबिलिटी के लिए बनाया गया है।
डेटास्टैक्स एस्ट्रा स्ट्रीमिंग के बारे में जानें , अपाचे पल्सर पर बनाया गया है और पूरी तरह से प्रबंधित सेवा के रूप में वितरित किया गया है।
मैरी ग्रिगलेस्की द्वारा। मैरी डेटास्टैक्स में स्ट्रीमिंग डेवलपर एडवोकेट हैं। वह जावा, ओपन सोर्स और क्लाउड टेक्नोलॉजी सहित क्लाउड नेटिव, सर्वरलेस, इवेंट-ड्रिवेन, माइक्रोसर्विसेज और रिएक्टिव आर्किटेक्चर के लिए कम्युनिटी एडवोकेसी और आउटरीच विकसित करने पर ध्यान केंद्रित करती है।