2016-02-29 12 views
9

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

+3

क्रिस बताते हैं के रूप में है कफका व्यक्तिगत रिकॉर्ड पुनर्प्राप्त करने के लिए कुछ तंत्र प्रदान करता है। लेकिन मुझे सावधानी बरतनी होगी कि ऐसा करना कफका मुख्य रूप से http://kafka.apache.org/documentation.html#uses के लिए डिज़ाइन नहीं किया गया है। यदि आप मुख्य रूप से किसी विषय से अलग-अलग संदेशों को पुनर्प्राप्त करने के लिए काफ्का का उपयोग कर रहे हैं, तो एक अलग सॉफ़्टवेयर का उपयोग करके आपके उपयोग के मामले में बेहतर फिट हो सकता है। – morganw09dev

+1

हाँ, मैंने एक कफका उपभोक्ता को लागू करने का निर्णय लिया है जो मोंगो डेटाबेस को लिखता है, और फिर मेरा आरईएसटी एपीआई वहां से अलग-अलग रिकॉर्ड का अनुरोध कर सकता है। मैंने क्रिस के जवाब को वोट दिया क्योंकि इसने मेरे संदेह की पुष्टि की कि यह संभव नहीं था (कम से कम सुंदरता से)। – user554481

उत्तर

7

काफ्का (oversimplify करने के लिए) में एक रिकॉर्ड की खोज करने का एकमात्र तेज़ तरीका विभाजन और ऑफसेट द्वारा है। नया निर्माता वर्ग, वायदा, विभाजन और ऑफसेट के माध्यम से एक संदेश लिखा गया था, के माध्यम से वापस आ सकता है। संदेश को पुनः प्राप्त करने के लिए आप इन दो मानों का उपयोग कर सकते हैं।

तो यदि आप विभाजन और ऑफ़सेट से आईडी बनाते हैं तो आप अपनी तेज क्वेरी को कार्यान्वित कर सकते हैं। अन्यथा, इतना नहीं। इसका मतलब है कि किसी ऑब्जेक्ट के लिए आईडी आपके डेटा मॉडल का हिस्सा नहीं है, बल्कि कफका-ज्ञात कोड द्वारा उत्पन्न की जाती है।

शायद यह आपके लिए काम करता है, शायद यह नहीं करता है।

+0

[विधि जो भविष्य लौटाती है] (https://kafka.apache.org/0101/javadoc/org/apache/kafka/clients/producer/KafkaProducer.html#send (org.apache.kafka.clients.producer.ProducerRecord)) विभाजन और ऑफ़सेट – ruhong

1

यह आप के लिए देर से हो सकता है, लेकिन यह कैसे अन्य इस सवाल को देखने के लिए मदद मिलेगी, अब वहाँ KSQL है, काफ्का एसक्यूएल, एक खुला स्रोत स्ट्रीमिंग एसक्यूएल इंजन

https://github.com/confluentinc/ksql/

+0

AFAIK Kafka स्ट्रीम ब्रोकर पर नहीं, क्लाइंट-साइड फ़िल्टरिंग करता है। इस प्रकार आप अभी भी नेटवर्क पर सभी डेटा ला रहे हैं। –

+0

हां, आप सही हैं @ सेर्गेईकोस्ट्रुकोव –

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