किनेसिस क्लाइंट लाइब्रेरी पृष्ठभूमि में थ्रेड शुरू करता है, प्रत्येक स्ट्रीम में 1 शेड सुनता है। आप कई धागे पर एक शार्ड से कनेक्ट नहीं हो सकते हैं, जो डिज़ाइन है।
http://docs.aws.amazon.com/kinesis/latest/dev/kinesis-record-processor-scaling.html
उदाहरण के लिए, आपके आवेदन एक EC2 उदाहरण पर चल रहा है, और एक अमेज़न Kinesis धारा चार के टुकड़े है कि संसाधित कर रहा है, तो। यह एक उदाहरण में एक केसीएल कार्यकर्ता और चार रिकॉर्ड प्रोसेसर हैं (प्रत्येक रिकॉर्ड के लिए एक रिकॉर्ड प्रोसेसर)। ये चार रिकॉर्ड प्रोसेसर उसी प्रक्रिया के भीतर समानांतर में चलते हैं।
उपरोक्त स्पष्टीकरण में, "केसीएल कार्यकर्ता" शब्द काइनेस उपभोक्ता अनुप्रयोग को संदर्भित करता है। धागे नहीं।
लेकिन नीचे, उसी "केसीएल कार्यकर्ता" शब्द को एप्लिकेशन में "वर्कर" धागा से संदर्भित किया गया है; जो एक रननेबल है।
आमतौर पर, जब आप KCl, का उपयोग आप सुनिश्चित करना चाहिए कि उदाहरणों की संख्या (विफलता अतिरिक्त प्रयोजनों के लिए छोड़कर) के टुकड़े की संख्या अधिक नहीं है। प्रत्येक शार्ड बिल्कुल एक केसीएल कार्यकर्ता द्वारा संसाधित किया गया है और वास्तव में रिकॉर्ड प्रोसेसर है, इसलिए आपको शेड को संसाधित करने के लिए कई उदाहरणों की आवश्यकता नहीं है।
केसीएल स्रोत में Worker.java कक्षा देखें।
अब मैं समझता हूं। इस मामले में, यहां तक कि यदि कई उदाहरण हैं, तो वे एक ही ग्राहक आवेदन हैं। मैं कफका की रेखा के साथ सोच रहा था, जहां स्वतंत्र अनुप्रयोग एक ही स्ट्रीम से पढ़ सकते हैं। – bhomass
@ user1058511: आप कर सकते हैं।किन्सिस एक ही स्ट्रीम को समान रूप से उपभोग करने के लिए एकाधिक अनुप्रयोगों के उपयोग-मामले का समर्थन करता है। उदाहरण के लिए, आपके पास एक ऐसा एप्लिकेशन है जो रीयल-टाइम डैशबोर्ड अपडेट करता है और दूसरा डेटा संग्रह करता है। आप चाहते हैं कि दोनों अनुप्रयोग समान स्ट्रीम से डेटा को एक साथ और स्वतंत्र रूप से उपभोग करें। –
मुझे लगता है कि मुझे फिर से बदलाव करने की आवश्यकता है। काफ्का के मामले में, कई उपभोक्ता ऐप्स एक उपभोक्ता समूह में भाग ले सकते हैं क्योंकि किसी भी संदेश को बार-बार संसाधित नहीं किया जाता है। इस अर्थ में, मैं "स्वतंत्र" मानने के लिए "स्वतंत्र" नहीं कहना चाहता हूं। – bhomass