मैं एक विशिष्ट विषय से डेटा सर्वेक्षण करने की कोशिश कर रहा हूँ जैसे काफ्का को १०० रिकॉर्ड/सेक मिल रहा है लेकिन अधिकांश समय यह सभी रिकॉर्ड नहीं लाता है। मैं टाइमआउट का उपयोग 5000ms के रूप में कर रहा हूं और मैं इस विधि को हर 100ms पर कॉल कर रहा हूं नोट: मैं विशिष्ट विषय की भी सदस्यता ले रहा हूं

@Scheduled(fixedDelayString = "100")

    public void pollRecords() {
        ConsumerRecords<String, String> records = 
        leadConsumer.poll("5000");

मैं काफ्का से सभी डेटा कैसे प्राप्त कर सकता हूं?

0
Harsh 13 मार्च 2020, 10:22

1 उत्तर

सबसे बढ़िया उत्तर

पोल () से लौटाए गए रिकॉर्ड की अधिकतम संख्या max.poll.records उपभोक्ता कॉन्फ़िगरेशन पैरामीटर के साथ निर्दिष्ट है। (डिफ़ॉल्ट 500 है) इसके अलावा, एक अन्य उपभोक्ता कॉन्फ़िगरेशन पैरामीटर हैं जो सर्वर से लौटाए गए डेटा की अधिकतम मात्रा को सीमित करता है। (fetch.max.bytes और max.partition.fetch.bytes)

दूसरी ओर, ब्रोकर की ओर से एक और आकार सीमा होती है जिसे message.max.bytes कहा जाता है।

इसलिए आपको अधिक संदेश प्राप्त करने के लिए इन मापदंडों को ठीक से सेट करना चाहिए।

काफ्का डॉक्स से (link):

max.poll.records: एकल में रिकॉर्ड की अधिकतम संख्या लौटाई गई मतदान के लिए कॉल करें ()। (डिफ़ॉल्ट: 500)

fetch.max.bytes: डेटा की वह अधिकतम मात्रा जो सर्वर को फ़ेच अनुरोध के लिए वापस करनी चाहिए। रिकॉर्ड बैचों में प्राप्त किए जाते हैं उपभोक्ता, और यदि पहले गैर-रिक्त में पहला रिकॉर्ड बैच फ़ेच का विभाजन इस मान से बड़ा है, रिकॉर्ड बैच उपभोक्ता प्रगति कर सकता है यह सुनिश्चित करने के लिए अभी भी लौटाया जाएगा। इस प्रकार, यह पूर्ण अधिकतम नहीं है। अधिकतम रिकॉर्ड बैच आकार ब्रोकर द्वारा स्वीकार किए गए संदेश के माध्यम से परिभाषित किया गया है। max.bytes (दलाल .) config) या max.message.bytes (विषय विन्यास)। ध्यान दें कि उपभोक्ता समानांतर में कई फ़ेच करता है। (डिफ़ॉल्ट: 52428800)

message.max.bytes: काफ्का द्वारा अनुमत सबसे बड़ा रिकॉर्ड बैच आकार। यदि इसे बढ़ाया जाता है और 0.10.2 से अधिक उम्र के उपभोक्ता हैं, तो उपभोक्ताओं के लाने का आकार भी बढ़ाया जाना चाहिए ताकि वे कर सकें इस बड़े बैच रिकॉर्ड प्राप्त करें। नवीनतम संदेश प्रारूप संस्करण में, रिकॉर्ड को हमेशा दक्षता के लिए बैचों में समूहीकृत किया जाता है। इससे पहले संदेश प्रारूप संस्करण, असम्पीडित रिकॉर्ड में समूहीकृत नहीं हैं बैच और यह सीमा केवल उसमें एक ही रिकॉर्ड पर लागू होती है case.इसे विषय स्तर max.message.bytes . के साथ प्रति विषय सेट किया जा सकता है विन्यास (डिफ़ॉल्ट: 1000012)

max.partition.fetch.bytes: सर्वर द्वारा प्रति-विभाजन डेटा की अधिकतम मात्रा लौटाएगा। रिकॉर्ड बैचों में लाए जाते हैं उपभोक्ता द्वारा। यदि पहले गैर-रिक्त में पहला रिकॉर्ड बैच है लाने का विभाजन इस सीमा से बड़ा है, बैच स्थिर रहेगा यह सुनिश्चित करने के लिए लौटाया जाए कि उपभोक्ता प्रगति कर सके। अधिकतम ब्रोकर द्वारा स्वीकार किए गए रिकॉर्ड बैच आकार को परिभाषित किया गया है message.max.bytes (दलाल config) या max.message.bytes (विषय विन्यास)। उपभोक्ता अनुरोध आकार सीमित करने के लिए fetch.max.bytes देखें। (डिफ़ॉल्ट: 1048576)

0
H.Ç.T 13 मार्च 2020, 08:53