2015-06-04 12 views
6

मेरे पास एक निर्माता है जो किसी विषय/विभाजन को संदेश लिखता है। ऑर्डरिंग को बनाए रखने के लिए, मैं एकल विभाजन के साथ जाना चाहता हूं और मैं चाहता हूं कि 12 उपभोक्ता इस एकल विभाजन से सभी संदेशों को पढ़ सकें (कोई उपभोक्ता समूह नहीं, सभी संदेश सभी उपभोक्ताओं को जाना चाहिए)। क्या यह प्राप्त करने योग्य है? मैंने कुछ मंच पढ़े हैं कि केवल एक उपभोक्ता प्रति विभाजन पढ़ सकता है।विभाजन के लिए काफ़का एकाधिक उपभोक्ता

उत्तर

13

आप जो भी पूछ रहे हैं उसे प्राप्त करने के लिए आप SimpleConsumer का उपयोग कर सकते हैं - कोई उपभोक्ता समूह नहीं, सभी उपभोक्ता एक विभाजन पढ़ सकते हैं। हालांकि इस दृष्टिकोण का मतलब है कि आपको ऑफ़सेट स्टोरेज और ब्रोकर विफलता को संभालने में मदद करना है।

एक और विकल्प विभिन्न उपभोक्ता समूहों के साथ उच्च स्तर के उपभोक्ता का उपयोग करना है (आप केवल प्रत्येक उपभोक्ता को यादृच्छिक यूयूआईडी असाइन कर सकते हैं)। इस तरह आप सभी उपभोक्ताओं के साथ एक विषय/विभाजन का उपभोग करने में सक्षम होंगे और ऑफसेट करने और ब्रोकर आउटेज को संभालने में सक्षम होंगे।

नियम "केवल एक उपभोक्ता विषय/विभाजन का उपभोग कर सकता है" केवल उपभोक्ता समूहों पर लागू होता है, उदा। ग्रुप में केवल एक उपभोक्ता एक विषय/विभाजन को एक साथ उपभोग कर सकता है।

+1

यदि मैं प्रत्येक उपभोक्ताओं के लिए अद्वितीय उपभोक्ता समूह का उपयोग करता हूं, तो मैं प्रत्येक ग्राहक के लिए एकल संदेश से सभी संदेशों को पढ़ूंगा? यानी कोड में कुछ .. props.put ("group.id", KafkaProperties.groupId); – skumar

+2

हां, यदि आपके पास एक विभाजन वाले विषय में 1000 संदेश हैं तो विभिन्न उपभोक्ता समूहों वाले सभी उपभोक्ता प्रत्येक 1000 संदेश पढ़ेंगे। – serejja

+0

क्या आप दृष्टिकोण 1 (ऑफ़सेट ऑफसेट और ब्रोकर विफलता) के लिए कुछ उदाहरण दे सकते हैं और दृष्टिकोण 2 के लिए (प्रत्येक उपभोक्ता को रैंडो यूईई असाइन करें)? – skumar

0

यदि आपके पास एक ही विभाजन पर एकाधिक उपभोक्ता हैं, तो यह आदेश जारी रखने की आपकी प्रारंभिक आवश्यकता को धड़कता है। हालांकि, आप भंडारण का आदेश दिया होगा, लेकिन खपत का आदेश नहीं दिया जाएगा। सुनिश्चित करें कि आप इसके साथ वास्तव में ठीक हैं। यदि हां, तो आप प्रत्येक उपभोक्ता को एक अलग उपभोक्ता समूह के रूप में देख सकते हैं।

संबंधित मुद्दे