2014-12-20 32 views
7

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

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

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

इस समस्या को हल करने के मेरे मेरे विकल्प क्या हैं? क्या दोनों खुश रखने के लिए कफका और जुकीपर को दिल की धड़कन का कोई तरीका है? क्या मुझे अभी भी एक ही समस्या है यदि मैं एक साधारण उपभोक्ता का उपयोग करना चाहता हूं?

+0

यदि आप अपनी समस्या की व्याख्या करते हैं तो आपको सहायता पाने की अधिक संभावना है। आपको यह कहते हुए कि "कुछ फीडबैक प्राप्त करना चाहते हैं" आपका प्रश्न बंद हो सकता है। स्टैक ओवरफ़्लो फ़ोरम नहीं है; हम संक्षिप्त और टू-पॉइंट होने का महत्व रखते हैं। –

उत्तर

3

ऐसा लगता है कि अंतिम समस्या वाले ऑफसेट को प्रबंधित करने के लिए उच्च स्तरीय उपभोक्ता पर निर्भर रहने के लिए आपकी समस्याएं उबालती हैं। एक साधारण उपभोक्ता का उपयोग उस समस्या को हल करेगा क्योंकि आप उस ऑफसेट की दृढ़ता को नियंत्रित करते हैं। ध्यान दें कि सभी उच्च स्तरीय उपभोक्ता प्रतिबद्धता ज़ूकीपर में अंतिम पढ़ने ऑफ़सेट स्टोर करती है। कोई अन्य कार्रवाई नहीं की गई है और जो संदेश आपने अभी पढ़ा है वह अभी भी विभाजन में है और अन्य उपभोक्ताओं द्वारा पठनीय है।

कफका साधारण उपभोक्ता के साथ, आपके पास ऑफसेट स्टोरेज कब और कैसे होता है, इस पर अधिक नियंत्रण होता है। आप ज़ूकीपर के अलावा कहीं और ऑफसेट कर सकते हैं (उदाहरण के लिए डेटा बेस)।

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

+0

हाय, मुझे एक ही समस्या का सामना करना पड़ रहा है, लेकिन नए कफका संस्करण में, साधारण उपभोक्ता को कम किया जाता है। अब यह कैसे करें? – pg20

0

मुझे लगता है कि समस्या उपभोक्ता के मतदान विधि उपभोक्ता के दिल की धड़कन अनुरोध को ट्रिगर करती है। और जब आप session.timeout बढ़ाते हैं। उपभोक्ता की दिल की धड़कन समन्वयक तक नहीं पहुंच जाएगी। इस दिल की धड़कन छोड़ने के कारण, संयोजक चिह्नित उपभोक्ता मृत। और उपभोक्ता पुनर्विचार भी विशेष रूप से एकल उपभोक्ता के मामले में बहुत धीमा है।

मैं ने वही समस्या और हल करने के लिए मैं उपभोक्ता config गुण में निम्न पैरामीटर बदलना होगा सामना करना पड़ा है

session.timeout.ms = request.timeout.ms = सत्र टाइमआउट

इसके अलावा अधिक से अधिक आपको kafka ब्रोकर नोड पर server.properties में निम्न संपत्ति जोड़नी होगी। group.max.session.timeout.ms =

आप अधिक जानकारी के लिए निम्न लिंक देख सकते हैं। http://grokbase.com/t/kafka/users/16324waa50/session-timeout-ms-limit

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