अद्यतन 09 अप्रैल, 2018 : आजकल आप काफ्का में अपने डेटा को संसाधित करने के लिए, काफ़्का के लिए इवेंट स्ट्रीमिंग डेटाबेस का उपयोग भी कर सकते हैं । ksqlDB काफ्का की स्ट्रीम एपीआई के ऊपर बनाया गया है, और यह "स्ट्रीम" और "टेबल" के लिए प्रथम श्रेणी के समर्थन के साथ आता है।
उपभोक्ता API और स्ट्रीम API में क्या अंतर है?
काफ्का की स्ट्रीम लाइब्रेरी ( https://kafka.apache.org/documentation/streams/ ) कफका निर्माता और उपभोक्ता ग्राहकों के ऊपर बनाई गई है। कफ़्का धाराएँ काफी अधिक शक्तिशाली हैं और सादे ग्राहकों की तुलना में अधिक अभिव्यंजक भी हैं।
यह सादा उपभोक्ता के मुकाबले कफ़्का धाराओं के साथ खत्म करने के लिए एक वास्तविक दुनिया के आवेदन को शुरू करने के लिए बहुत सरल और तेज है।
यहां कफ़्का स्ट्रीम एपीआई की कुछ विशेषताएं दी गई हैं, जिनमें से अधिकांश उपभोक्ता ग्राहक द्वारा समर्थित नहीं हैं (इससे आपको लापता सुविधाओं को स्वयं लागू करना होगा, अनिवार्य रूप से काफ्का धाराओं को फिर से लागू करना होगा)।
- काफ़्का लेनदेन के माध्यम से ठीक एक बार प्रसंस्करण शब्दार्थ का समर्थन करता है ( ईओएस का अर्थ है )
- समर्थन दोष सहिष्णु स्टेटफुल (और साथ ही राज्यविहीन, निश्चित रूप से) प्रसंस्करण सहित स्ट्रीमिंग मिलती है , एकत्रित , और विंडोइंग । दूसरे शब्दों में, यह आपके एप्लिकेशन के प्रोसेसिंग आउट-ऑफ-द-बॉक्स के प्रबंधन का समर्थन करता है।
- घटना-समय प्रसंस्करण और प्रसंस्करण-समय और अंतर्ग्रहण-समय के आधार पर प्रसंस्करण का समर्थन करता है । यह निर्बाध रूप से डेटा को संसाधित भी करता है ।
- स्ट्रीम और टेबल दोनों के लिए प्रथम श्रेणी का समर्थन है , जो कि जहां स्ट्रीम प्रोसेसिंग डेटाबेस से मिलता है; व्यवहार में, अधिकांश स्ट्रीम प्रसंस्करण अनुप्रयोगों को अपने संबंधित उपयोग के मामलों को लागू करने के लिए दोनों धाराओं और तालिकाओं की आवश्यकता होती है, इसलिए यदि स्ट्रीम प्रसंस्करण तकनीक में दोनों में से किसी एक का अभाव है (जैसे, तालिकाओं के लिए कोई समर्थन नहीं) आप या तो अटक गए हैं या मैन्युअल रूप से इस कार्यक्षमता को स्वयं लागू करना चाहिए (उसके साथ अच्छा भाग्य...)
- अन्य अनुप्रयोगों और सेवाओं के लिए नवीनतम प्रसंस्करण परिणामों को उजागर करने के लिए इंटरैक्टिव क्वेरी (जिसे 'क्वेरी स्टेट' भी कहा जाता है) का समर्थन करता है
- अधिक अर्थपूर्ण है: इसके साथ जहाजों (1) एक कार्यात्मक प्रोग्रामिंग शैली डीएसएल जैसे कार्यों के साथ
map
, filter
, reduce
के साथ-साथ (2) एक अनिवार्य शैली प्रोसेसर एपीआई जैसे जटिल घटना प्रसंस्करण (सीईपी) करने के लिए (3) आप भी जोड़ सकते हैं, और डीएसएल और प्रोसेसर एपीआई।
- इकाई और एकीकरण परीक्षण के लिए अपनी स्वयं की परीक्षण किट है ।
देखें http://docs.confluent.io/current/streams/introduction.html के लिए एक अधिक विस्तृत, लेकिन अभी भी काफ्का स्ट्रीम एपीआई, जो भी मदद करनी चाहिए आप निचले स्तर काफ्का उपभोक्ता के लिए अंतर को समझने के लिए करने के लिए उच्च स्तरीय परिचय ग्राहक।
काफ्का धाराओं से परे, आप काफ्का में अपने डेटा को संसाधित करने के लिए इवेंट स्ट्रीमिंग डेटाबेस ksqlDB का उपयोग कर सकते हैं । ksqlDB काफ्का धाराओं के ऊपर बनाया गया है। यह अनिवार्य रूप से कफ़्का धाराओं के समान सुविधाओं का समर्थन करता है, लेकिन आप जावा या स्काला के बजाय स्ट्रीमिंग एसक्यूएल लिखते हैं। प्रोग्रामेटिक रूप से, आप CLI या REST API के माध्यम से ksqlDB के साथ बातचीत कर सकते हैं; यदि आप REST का उपयोग नहीं करना चाहते हैं, तो इसमें एक मूल जावा क्लाइंट भी है।
तो काफ्का स्ट्रीम एपीआई कैसे अलग है क्योंकि यह काफ्का के संदेशों का उपभोग या उत्पादन भी करता है?
हां, काफ्का स्ट्रीम एपीआई डेटा को पढ़ने के साथ-साथ कफका को डेटा भी लिख सकता है। यह काफ्का लेनदेन का समर्थन करता है, इसलिए आप एक या एक से अधिक विषयों के एक या अधिक संदेश पढ़ सकते हैं, यदि आप की आवश्यकता है, तो वैकल्पिक रूप से प्रसंस्करण स्थिति को अपडेट करें और फिर एक या एक से अधिक विषयों पर एक या अधिक आउटपुट संदेश लिखें - सभी एक के रूप में परमाणु संचालन।
और इसकी आवश्यकता क्यों है क्योंकि हम उपभोक्ता एपीआई का उपयोग करके अपने स्वयं के उपभोक्ता एप्लिकेशन को लिख सकते हैं और उन्हें आवश्यकतानुसार संसाधित कर सकते हैं या उन्हें उपभोक्ता एप्लिकेशन से स्पार्क भेज सकते हैं?
हां, आप अपना खुद का उपभोक्ता आवेदन लिख सकते हैं - जैसा कि मैंने उल्लेख किया है, काफ्का स्ट्रीम एपीआई काफ्का उपभोक्ता ग्राहक (साथ ही निर्माता क्लाइंट) का उपयोग करता है - लेकिन आपको उन सभी विशिष्ट विशेषताओं को मैन्युअल रूप से लागू करना होगा जो स्ट्रीम एपीआई प्रदान करता है । आपको "मुफ्त में" मिलने वाली हर चीज़ के लिए ऊपर दी गई सूची देखें। इस प्रकार यह एक दुर्लभ परिस्थिति है कि एक उपयोगकर्ता अधिक शक्तिशाली कफ़्का धाराओं पुस्तकालय के बजाय सादे उपभोक्ता ग्राहक को चुन लेगा।