2015-01-07 16 views
7

मैं जानना चाहता हूं कि सरल विषय & विभाजन विषय के बीच क्या अंतर है। लोड को संतुलित करने के लिए मेरी समझ के अनुसार, विषय विभाजित किया गया है, प्रत्येक संदेश ऑफसेट होगा & उपभोक्ता पिछले सुनिश्चित करने के लिए स्वीकार करेगा संदेशों का उपभोग किया गया है। यदि विभाजन & उपभोक्ता के किसी भी मामले में कफका द्वारा किए गए शेष संतुलन को कुशलता से प्रबंधित नहीं किया जाता है।काफ्का टॉपिक बनाम विभाजन विषय

यदि विभाजन के बजाय कई विषय बनाए गए हैं तो यह परिचालन दक्षता को प्रभावित करता है।

उत्तर

16

से kafka documentation

लॉग में विभाजन कई प्रयोजनों की सेवा। सबसे पहले, वे लॉग को उस आकार से बाहर स्केल करने की अनुमति देते हैं जो एक सर्वर पर फिट होगा। प्रत्येक व्यक्ति विभाजन सर्वर होस्ट पर फिट होगा, लेकिन तो यह डेटा की एक मनमाना राशि संभाल कर सकते हैं एक विषय कई विभाजन हो सकता है

किसी भी विषय के लिए कई विभाजन होने काफ्का काफ्का क्लस्टर भर में इसे वितरित करने की अनुमति देता है । नतीजतन विभिन्न विभाजन से डेटा को संभालने का अनुरोध पूरे क्लस्टर में एकाधिक सर्वरों के बीच विभाजित किया जा सकता है। डेटा हानि को कम करने के लिए प्रत्येक विभाजन को कई सर्वरों में दोहराया जा सकता है। दस्तावेज़ पृष्ठ

लॉग के विभाजन प्रत्येक सर्वर हैंडलिंग डेटा और विभाजन के हिस्से के अनुरोध के साथ काफ़का क्लस्टर में सर्वर पर वितरित किए जाते हैं। प्रत्येक विभाजन को गलती सहनशीलता के लिए सर्वर की कॉन्फ़िगर करने योग्य संख्या में दोहराया जाता है।

इसलिए एक विभाजन के साथ एक विषय होने से आप इन लचीलापनों का उपयोग करने की अनुमति नहीं देंगे। वास्तविक जीवन वातावरण में भी ध्यान दें कि संदेशों के विभिन्न श्रेणियों को रखने के लिए आपके पास अलग-अलग विषय हो सकते हैं (हालांकि कई विभाजनों के साथ एक भी विषय होना संभव है जहां प्रत्येक विभाजन में उत्पादन के दौरान मेस्गा कुंजी का उपयोग करके संदेशों की विशिष्ट श्रेणियां हो सकती हैं)।

मुझे नहीं लगता कि विभाजन के बजाय कई विषयों को बनाने से समग्र प्रदर्शन पर अधिक असर पड़ेगा। लेकिन कल्पना करें कि आप अपनी साइट के उपयोगकर्ताओं द्वारा बनाई गई सभी ट्वीट्स का ट्रैक रखना चाहते हैं। इसके बाद आप कई पार्टिटन के साथ "User_tweet" नामक एक विषय प्राप्त कर सकते हैं ताकि संदेशों का उत्पादन करते समय काफ़का कई विभाजनों में डेटा वितरित कर सके और उपभोक्ता अंत में आपको केवल उसी विषय से डेटा खींचने वाले उपभोक्ता के एक समूह की आवश्यकता हो। इसके बजाय "User_tweet_1", "User_tweet_2", "User_tweet_3" रखने से संदेशों को उत्पादित करने और उपभोग करने के दौरान केवल आपके लिए चीजें जटिल हो जाएंगी।

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