मैं ऊपर दिए गए उत्तर पढ़ रहा हूं और मैं उन्हें पूरक करना चाहूंगा, क्योंकि मुझे लगता है कि कुछ विवरण लंबित हैं:
पूरी तरह से प्रबंधित प्रणाली दोनों सिस्टम क्लाउड में पूरी तरह से प्रबंधित संस्करण हो सकते हैं। Google Pubsub प्रदान करता है और वहाँ कुछ पूरी तरह से प्रबंधित Kafka संस्करण हैं जिन्हें आप कॉन्फ़िगर कर सकते हैं क्लाउड पर और ऑन- ।
क्लाउड बनाम ऑन-प्रिम मुझे लगता है कि यह उनके बीच एक वास्तविक अंतर है, क्योंकि पब्सब को केवल जीसीपी पारिस्थितिकी तंत्र के हिस्से के रूप में पेश किया जाता है, जबकि अपाचे काफ्का आप क्लाउड सेवा और ऑन-प्रीमियर सेवा दोनों के रूप में उपयोग कर सकते हैं (स्वयं के लिए क्लस्टर कॉन्फ़िगरेशन कर सकते हैं)
संदेश दोहराव
- काफ्का के साथ आपको अपाचे ज़ुकाइपर जैसे बाहरी भंडारण का उपयोग करके अपने आप से संदेशों के ऑफसेट को प्रबंधित करना होगा। इस तरह आप कंज्यूमर्स द्वारा अब तक पढ़े गए संदेशों को ट्रैक कर सकते हैं। Pubsub संदेश को स्वीकार करने का उपयोग करके काम करता है, यदि आपका कोड समय सीमा से पहले संदेश को स्वीकार नहीं करता है, तो संदेश फिर से भेजा जाता है, इस तरह आप डुप्लिकेट किए गए संदेशों से बच सकते हैं या बचने का दूसरा तरीका Cloud Dataflow PubsubIO का उपयोग कर रहा है।
अवधारण नीति कफका और पब्सब दोनों के पास अधिकतम अवधारण समय को कॉन्फ़िगर करने के लिए विकल्प हैं, डिफ़ॉल्ट रूप से, मुझे लगता है कि 7 दिन है।
उपभोक्ता समूह बनाम सदस्यताएँ सावधान रहें कि आप दोनों प्रणालियों में संदेश कैसे पढ़ते हैं। Pubsub सदस्यता का उपयोग करें, आप एक सदस्यता बनाते हैं और फिर आप उस सदस्यता से संदेश पढ़ना शुरू करते हैं। किसी संदेश को पढ़ने और स्वीकार करने के बाद, उस सदस्यता के लिए संदेश चला जाता है। काफ्का "उपभोक्ता समूह" और "विभाजन" की अवधारणा का उपयोग करते हैं, प्रत्येक उपभोक्ता प्रक्रिया एक समूह से संबंधित होती है और जब एक संदेश किसी विशिष्ट विभाजन से पढ़ा जाता है, तो कोई भी अन्य उपभोक्ता प्रक्रिया जो उसी "उपभोक्ता समूह" से संबंधित नहीं होगी उस संदेश को पढ़ने के लिए (क्योंकि ऑफसेट अंततः बढ़ जाएगा)। आप ऑफसेट को एक पॉइंटर के रूप में देख सकते हैं जो उन प्रक्रियाओं को बताता है जो संदेश को पढ़ना है।
मुझे लगता है कि आपके प्रश्न का कोई सही उत्तर नहीं है, यह वास्तव में इस बात पर निर्भर करता है कि आपको क्या आवश्यकता होगी और आपके पास जो बाधाएँ हैं (नीचे एस्केनॉज के कुछ उदाहरण हैं):
यदि समाधान GCP में होना चाहिए, तो स्पष्ट रूप से Google क्लाउड Pubsub का उपयोग करें। आप सभी सेटिंग्स प्रयासों से बचेंगे या काफ्का की आवश्यकता वाले पूरी तरह से स्वचालित प्रणाली के लिए अतिरिक्त भुगतान करेंगे।
यदि समाधान को स्ट्रीमिंग तरीके से प्रक्रिया डेटा की आवश्यकता होनी चाहिए, लेकिन बैच प्रसंस्करण (अंततः) का समर्थन करने की आवश्यकता है, तो क्लाउड डेटाफ़्लो + पब्सब का उपयोग करना एक अच्छा विचार है।
यदि समाधान में कुछ स्पार्क प्रसंस्करण का उपयोग करने की आवश्यकता होती है, तो आप स्पार्क स्ट्रीमिंग का पता लगा सकते हैं (जिसे आप स्ट्रीम प्रोसेसिंग के लिए काफ्का कॉन्फ़िगर कर सकते हैं)
सामान्य तौर पर, दोनों बहुत ही ठोस स्ट्रीम प्रोसेसिंग सिस्टम हैं। जो बिंदु बहुत बड़ा है, वह यह है कि Pubsub GCP से जुड़ी क्लाउड सेवा है, जबकि Apache Kafka को Cloud और On-prem दोनों में इस्तेमाल किया जा सकता है।