2015-03-13 22 views
5

में कस्टम हेडर जोड़ा जा रहा है।मैं इसे एक बाइट सरणी काफ्का निर्माता का उपयोग करने में कनवर्ट करके संदेश के रूप में एक फ़ाइल भेज रहा हूँ काफ्का संदेश

मैं भी संदेश के लिए कुछ हेडर जोड़ने के लिए उदाहरण फ़ाइल नाम, timestamps आदि के लिए तो उपभोक्ता अंत में मैं फ़ाइल नाम और अन्य शीर्ष लेख के आधार पर संदेश प्रक्रिया पूरी कर सकें।

क्या मैं वर्तमान में कर रहा हूँ एक वस्तु बनाने और उस में कच्चे संदेश और हेडर लपेटकर और संदेश के रूप में एक बाइट सरणी में वस्तु भेज रहा है।

मैं अगर वहाँ एक रास्ता है जिसके द्वारा मैं संदेश प्रकाशित करते समय कस्टम शीर्षलेख जोड़ सकते है पता करने के लिए चाहते हैं?

उत्तर

4

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

+1

इसलिए उस मामले में मुझे पूरे विषय में सभी संदेश मिलेंगे और फिर प्रत्येक संदेश को पार्स करें और फिर मेरे मेटाडेटा के आधार पर कुछ तर्क लागू करें, मैंने सोचा कि एक ऐसा तरीका होगा जिससे मैं कुछ विशिष्ट मेटाडेटा के संदेश प्राप्त कर सकूं सभी संदेश – CTDex

0

मैं तो मैं इस सरल पुस्तकालय बनाया परियोजनाओं मैं पर काम किया है के साथ इसी तरह की समस्याओं के माध्यम से किया गया है से निपटने है कि मदद करने के लिए: https://github.com/leandronunes85/messaging। अब के लिए एक एवरो आधारित कार्यान्वयन है लेकिन इसे आपकी पसंद के किसी अन्य धारावाहिक ढांचे का उपयोग करने के लिए बढ़ाया जा सकता है।

आपको केवल उन वस्तुओं के लिए एक (डी) धारावाहिक बनाना है जो आप स्ट्रीम (एवरो आधारित या नहीं) पर रखना चाहते हैं और AvroMessageSerializer को अपने जादू का काम करने दें।

यह अभी भी एक बहुत ही युवा पुस्तकालय है लेकिन मुझे लगता है कि यह कई लोगों को बहुत समय बचा सकता है!

8

काफ्का v0.11.0.0 कस्टम हेडर के लिए समर्थन जोड़ता है।

आप इस प्रकार का ProducerRecord बनाते समय उन्हें जोड़ सकते हैं:

नई ProducerRecord (कुंजी, मूल्य, हेडर, ...) है, जहां हेडर के प्रकार Iterable < हैडर >

है अधिक जानकारी के लिए विवरण देखने के:

https://issues.apache.org/jira/browse/KAFKA-4208

https://cwiki.apache.org/confluence/display/KAFKA/KIP-82+-+Add+Record+Headers

+0

कृपया दिखाएं कि यह उत्तर में समस्या को कैसे हल करता है। –

+0

समझा, किया। –

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