2015-01-13 14 views
8

कैसे तय करें मैं यह तय करने की योजना बना रहा हूं कि काफ्का क्लस्टर पर कितने नोड मौजूद होना चाहिए। मैं मानकों को ध्यान में रखना सुनिश्चित नहीं कर रहा हूं। मुझे यकीन है कि यह होना चाहिए> = 3 (2 के प्रतिकृति कारक और 1 नोड की विफलता सहनशीलता के साथ)।काफ्का क्लस्टर आकार

क्या कोई मुझे बता सकता है कि क्लस्टर आकार का निर्णय लेने और आकार को कैसे प्रभावित करते समय पैरामीटर को ध्यान में रखा जाना चाहिए।

मुझे निम्नलिखित कारकों के बारे में पता है लेकिन यह नहीं पता कि यह क्लस्टर आकार को मात्रात्मक रूप से कैसे प्रभावित करता है। मुझे पता है कि यह क्लस्टर आकार को गुणात्मक रूप से कैसे प्रभावित करता है। क्या कोई अन्य पैरामीटर है जो क्लस्टर आकार को प्रभावित करता है? 1. Replication factor (cluster size >= replication factor) 2. Node failure tolerance. (cluster size >= node-failure + 1)

क्या परिदृश्य का अनुसरण करते हुए सभी मापदंडों 1. There are 3 topics. 2. Each topic has messages of different size. Message size range is 10 to 500kb. Average message size being 50kb. 3. Each topic has different partitions. Partitions are 10, 100, 500 4. Retention period is 7 days 5. There are 100 million messages which gets posted every day for each topic.

के विचार किसी को प्रासंगिक दस्तावेज या किसी अन्य ब्लॉग जो इस पर चर्चा कर सकते हैं करने के लिए मुझसे बात कर सकते हैं तो कृपया के लिए क्लस्टर आकार होना चाहिए। मैंने Google को खोजा है लेकिन इसका कोई फायदा नहीं हुआ है

+0

कोई अपराध खुदाई करने के लिए उपयोगी पाते हैं लेकिन यह मेरे लिए लग रहा है 'मुख्य रूप से राय-based'। अपनी आवेदन आवश्यकता के बारे में अधिक जानकारी शामिल करें। क्या कोई सेट अप है जिसके साथ आप वर्तमान में चल रहे हैं? क्या आप एक उत्पादन वातावरण के बारे में बात कर रहे हैं? आप किस प्रकार के डेटा लोड की उम्मीद कर रहे हैं। – user2720864

+0

मैं अपने आप को कॉल करना चाहता हूं। मैं जानना चाहता हूं कि क्या कोई पैरामीटर है जिसके आधार पर हम क्लस्टर आकार का निर्णय लेते हैं। काफ्का दस्तावेज इष्टतम क्लस्टर आकार के बारे में कोई जानकारी प्रदान नहीं करता है। इसके आसपास डेटा बिंदु जोड़ देगा। – puneet

उत्तर

12

जैसा कि मैं समझता हूं, कफका से अच्छा थ्रूपुट प्राप्त करना केवल क्लस्टर आकार पर निर्भर नहीं है; अन्य कॉन्फ़िगरेशन भी हैं जिन पर विचार करने की आवश्यकता है। जितना मैं कर सकता हूं उतना साझा करने की कोशिश करूंगा।

काफ्का का थ्रूपुट आपके पास डिस्क की संख्या के साथ रैखिक रूप से स्केलबेल होना चाहिए। काफ्का 0.8 में पेश की गई नई एकाधिक डेटा निर्देशिका सुविधा कफका के विषयों को विभिन्न मशीनों पर अलग-अलग विभाजन करने की अनुमति देती है। चूंकि विभाजन संख्या बहुत बढ़ जाती है, इसलिए संभावना है कि नेता चुनाव प्रक्रिया धीमी हो जाएगी, उपभोक्ता पुनर्वसन को भी प्रभावित करेगी। यह विचार करने के लिए कुछ है, और एक बाधा हो सकती है।

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

अन्य कारक भी होंगे। उदाहरण के लिए उपभोक्ता के fetch आकार, संपीड़न, बैच आकार एसिंक्रोनस उत्पादकों, सॉकेट बफर आकार आदि के लिए।

हार्डवेयर & ओएस एक लिनक्स आधारित वातावरण में काफ्का का उपयोग करने के रूप में इसमें एक महत्वपूर्ण भूमिका निभाएगा, इसके पृष्ठ के कारण डिस्क को डेटा लिखने के लिए कैश तंत्र के कारण सलाह दी जाती है। इस here

पर और पढ़ें, इससे पहले कि आप वास्तव में अपनी आवश्यकताओं के अनुरूप इसे ट्यून करने से पहले how OS flush behavior play a key role into consideration पर भी एक नज़र डालना चाहें। मेरा मानना ​​है कि डिजाइन दर्शन को समझना महत्वपूर्ण है, जो थ्रूपुट और गलती सहनशीलता के मामले में इतना प्रभावी बनाता है।

कुछ और संसाधन मैं में
https://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines
http://blog.liveramp.com/2013/04/08/kafka-0-8-producer-performance-2/
https://grey-boundary.io/load-testing-apache-kafka-on-aws/
https://cwiki.apache.org/confluence/display/KAFKA/Performance+testing

2

मैंने हाल ही में काफ्का के साथ काम किया था और ये मेरे अवलोकन हैं।

प्रत्येक विषय को विभाजन में विभाजित किया गया है और किसी विषय के सभी विभाजन कफका दलालों में वितरित किए जाते हैं; इन सभी मददों में से पहला उन विषयों को बचाने के लिए जिनके आकार एक कफ्का ब्रोकर की क्षमता से बड़े हैं और वे उपभोक्ता समांतरता को भी बढ़ाते हैं।

विश्वसनीयता और गलती सहनशीलता बढ़ाने के लिए, विभाजन की प्रतिकृतियां की जाती हैं और वे उपभोक्ता समांतरता में वृद्धि नहीं करते हैं। अंगूठे नियम एक एकल ब्रोकर प्रति विभाजन प्रति केवल एक प्रति प्रतिकृति होस्ट कर सकता है। इसलिए ब्रोकरों की संख्या> = प्रतिकृतियों की संख्या

सभी विभाजन सभी उपलब्ध दलालों में फैले हुए हैं, विभाजन की संख्या दलालों की संख्या के बावजूद हो सकती है लेकिन विभाजन की संख्या उपभोक्ता धागे की संख्या के बराबर होनी चाहिए उपभोक्ता समूह (सर्वश्रेष्ठ थ्रूपुट प्राप्त करने के लिए)

क्लस्टर आकार का निर्णय उपभोक्ता पर प्राप्त करने वाले थ्रूपुट को ध्यान में रखते हुए तय किया जाना चाहिए।

+0

जानकारी के लिए धन्यवाद। लक्ष्य में से एक उच्च थ्रूपुट है, मैं यह कैसे कर सकता हूं? – puneet

+0

उच्च उपभोक्ता थ्रूपुट प्राप्त करने के लिए यानी उच्च दर पर संदेशों का उपभोग करें, विभाजनों की संख्या में वृद्धि करें और हाईलेवल उपभोक्ता में विभाजनों के बराबर धागे की आग संख्या को बढ़ाएं। – nithin

+0

@nitin क्या होगा यदि आपके पास 1000 पार्टिटन्स हैं और सभी विभाजनों से उपभोक्ता संदेशों को उपभोक्ताओं को चलाने के लिए चाहते हैं ??? – user2720864

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