मुझे कफका में लोड संतुलन के साथ एक प्रश्न का सामना करना पड़ा। इसलिए, मैंने 10 विभाजन के साथ एक विषय बनाया और 2 उपभोक्ताओं को बनाया। 10 विभाजनों को विभाजित किया गया था और इन उपभोक्ताओं को सौंपा गया था (5 विभाजन पहले और 5 से दूसरे तक) और यह ठीक काम करता है। कभी-कभी पहले उपभोक्ता काम करता है, कभी-कभी दूसरा।कैसे कफका विभाजन विभाजन को संतुलित करता है?
लेकिन एक पल में हम एक स्थिति का सामना कर सकते हैं जब उदाहरण के लिए दूसरे उपभोक्ता को एक संदेश प्राप्त होता है और इस संदेश को संभालने में समय लगता है (उदाहरण के लिए 10 मिनट)।
तो, मेरा सवाल यह है कि कैसे कफका निर्णय लेगा कि कौन सा विभाजन संदेश संग्रहीत करता है?
इस मामले में राउंड रॉबिन मुझे लगता है कि यह एक अच्छा विचार नहीं है, क्योंकि दूसरे उपभोक्ता द्वारा प्रबंधित किए गए विभाजन में संदेश तब तक संभाले नहीं जाएंगे जब तक कि दूसरा उपभोक्ता लंबे काम को पूरा नहीं कर लेता।
अपडेटेड!
@ मिलन बरन के जवाब के अनुसार, लोड निर्माता के पक्ष में संतुलित है। लेकिन इस मामले में, भले ही हम कस्टम Partitioner
प्राप्ति प्रदान करते हैं, फिर भी यह वही समस्या होगी जो कि संदेश में संग्रहीत संदेश जो लंबे समय तक काम कर रहे उपभोक्ता को सौंपा गया था, इस उपभोक्ता तक संसाधित नहीं किया जाएगा अपने दीर्घकालिक काम को खत्म करता है।
हो सकता है कि अतिरिक्त लोड बैलेंसर कहीं और हो?
आप और अधिक उपभोक्ताओं को क्यों नहीं चलाते? यदि आप 10 उपभोक्ताओं को शुरू करते हैं तो जब कोई लंबे समय तक व्यस्त रहता है तो आपके पास अभी भी 9 अन्य विभाजनों में डेटा को प्रोसेस करना पड़ता है। –
लेकिन 10 के विभाजन में सभी संदेश संसाधित होने तक संसाधित नहीं होते हैं। समस्या –
क्या आप एक कस्टम विभाजनकर्ता लिख सकते हैं जो लंबे समय तक चलने वाले संदेशों को समर्पित विभाजन में रखता है ताकि शेष छोटे हिस्सों को विभाजन और शेष विभाजन में संसाधित किया जा सके? –