Kafka श्रोता कंटेनर बनाना
निर्दिष्ट टॉपिक से संदेश अपने-आप प्राप्त करने और उनके गुण कॉन्फ़िगर करने के लिए @KafkaListener विधियाँ बनाइए।
Kafka श्रोता कंटेनर बनाना, CoddyKit पर उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Kafka उपभोक्ताओं के पाठ में आपका स्वागत है!
इवेंट-आधारित प्रणालियों में उत्पादक इवेंट भेजते हैं और उपभोक्ता उन पर प्रतिक्रिया देते हैं। Spring Boot Kafka उपभोक्ता बनाना आसान बनाता है।
हम सीखेंगे कि @KafkaListener एनोटेशन का उपयोग करके ऐसे तरीके कैसे बनाए जाएँ, जो Kafka विषयों से संदेशों को अपने-आप सुनें और संसाधित करें।
@KafkaListener एनोटेशन
@KafkaListener एनोटेशन Spring Boot में संदेश प्राप्त करने का मुख्य आधार है। आप इसे किसी विधि पर लगाकर Spring को बताते हैं कि किन Kafka विषयों को सुनना है।
- यह आवश्यक आधारभूत संरचना अपने-आप सेट अप करता है।
- विधि का पैरामीटर संदेश का डेटा प्राप्त करता है।
- आपको
topicsऔरgroupIdनिर्दिष्ट करना आवश्यक है।
मूल श्रोता: स्ट्रिंग संदेश
आइए एक सरल Kafka श्रोता बनाएँ, जो साधारण स्ट्रिंग संदेश प्राप्त करे। याद रखें, आमतौर पर आपके Spring Boot प्रोजेक्ट में Kafka निर्भरताएँ और कॉन्फ़िगरेशन पहले से मौजूद होंगे।
यहाँ my-topic Kafka विषय है और my-group उपभोक्ता समूह ID है।
package com.example.kafkaconsumer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.kafka.annotation.EnableKafka;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;
@SpringBootApplication
@EnableKafka
public class KafkaConsumerApplication {
public static void main(String[] args) {
// In a real app, SpringApplication.run() starts the context
// and registers the @KafkaListener methods.
System.out.println("Spring Boot Kafka Consumer App Started (simulated)");
// For a runnable snippet, we just show the listener logic.
// In a full app, this would run indefinitely, waiting for messages.
}
}
@Component
class MyStringListener {
@KafkaListener(topics = "my-topic", groupId = "my-group")
public void listen(String message) {
System.out.println("Received String: " + message);
}
}उपभोक्ता समूहों को समझना
groupId प्रॉपर्टी Kafka उपभोक्ताओं के लिए अत्यंत महत्वपूर्ण है। यह ऐसे उपभोक्ताओं के समूह को परिभाषित करती है, जो एक या अधिक विषयों से संदेशों को संसाधित करने के लिए साथ काम करते हैं।
- भार संतुलन: किसी विषय के संदेश एक ही समूह के उपभोक्ताओं के बीच बाँटे जाते हैं।
- त्रुटि सहनशीलता: यदि कोई उपभोक्ता विफल हो जाए, तो समूह का दूसरा उपभोक्ता उसके पार्टिशन संभाल लेता है।
- अद्वितीय प्रसंस्करण: किसी समूह के भीतर प्रत्येक संदेश को केवल एक उपभोक्ता संसाधित करता है।
कई विषयों को सुनना
एक ही @KafkaListener विधि कई विषयों को सुन सकती है। आप topics विशेषता में उन्हें स्ट्रिंग की एक सारणी के रूप में निर्दिष्ट कर सकते हैं।
यह तब उपयोगी होता है, जब अलग-अलग विषयों में एक ही तर्क से संभाले जा सकने वाले संबंधित प्रकार के संदेश हों।
package com.example.kafkaconsumer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.kafka.annotation.EnableKafka;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;
@SpringBootApplication
@EnableKafka
public class KafkaConsumerApplication {
public static void main(String[] args) {
System.out.println("Spring Boot Kafka Consumer App Started (simulated)");
}
}
@Component
class MultiTopicListener {
@KafkaListener(topics = {"topic-a", "topic-b"}, groupId = "multi-group")
public void listenMultipleTopics(String message) {
System.out.println("Received from multiple topics: " + message);
}
}कस्टम ऑब्जेक्ट प्राप्त करना
Kafka संदेशों में अक्सर केवल स्ट्रिंग नहीं, बल्कि संरचित डेटा होता है। Spring Kafka JSON या Avro संदेशों को Java ऑब्जेक्ट्स (POJO) में अपने-आप बदल सकता है।
आपको केवल ऐसा POJO परिभाषित करना है, जो आपके Kafka संदेशों की संरचना से मेल खाता हो, और उसे विधि के पैरामीटर के रूप में उपयोग करना है।
कोड: कस्टम ऑब्जेक्ट श्रोता
कस्टम MyEvent ऑब्जेक्ट के लिए लिस्नर सेट अप करने का तरीका यह है। Spring Boot डीसरीलाइज़ेशन संभालता है, बशर्ते आपने सही डीसरीलाइज़र कॉन्फ़िगर किया हो (जैसे, JSON डीसरीलाइज़र)।
package com.example.kafkaconsumer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.kafka.annotation.EnableKafka;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;
// A simple data class representing an event
class MyEvent {
private String id;
private String description;
// Getters and setters are essential for deserialization
public String getId() { return id; }
public void setId(String id) { this.id = id; }
public String getDescription() { return description; }
public void setDescription(String description) { this.description = description; }
@Override
public String toString() {
return "MyEvent{id='" + id + "', description='" + description + "'}";
}
}
@SpringBootApplication
@EnableKafka
public class KafkaConsumerApplication {
public static void main(String[] args) {
System.out.println("Spring Boot Kafka Consumer App Started (simulated)");
}
}
@Component
class MyObjectListener {
@KafkaListener(topics = "object-topic", groupId = "object-group")
public void listenObject(MyEvent event) {
System.out.println("Received object: " + event);
}
}संदेश मेटाडेटा तक पहुँचना
संदेश के पेलोड के अलावा, Kafka संदेशों में टॉपिक, पार्टिशन, ऑफ़सेट और हेडर जैसे उपयोगी मेटाडेटा भी होते हैं। आप अपने लिस्नर मेथड में इन तक पहुँच सकते हैं:
@Payload: संदेश का मुख्य भाग (डिफ़ॉल्ट)।@Header: Kafka के विशेष हेडर तक पहुँचना।ConsumerRecord: मूल Kafka रिकॉर्ड, जिससे सभी मेटाडेटा तक पहुँचा जा सकता है।
package com.example.kafkaconsumer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.kafka.annotation.EnableKafka;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.messaging.handler.annotation.Header;
import org.springframework.messaging.handler.annotation.Payload;
import org.springframework.stereotype.Component;
@SpringBootApplication
@EnableKafka
public class KafkaConsumerApplication {
public static void main(String[] args) {
System.out.println("Spring Boot Kafka Consumer App Started (simulated)");
}
}
@Component
class MyMetadataListener {
@KafkaListener(topics = "metadata-topic", groupId = "meta-group")
public void listenWithMetadata(
@Payload String message,
@Header("kafka_receivedTopic") String topic,
@Header("kafka_receivedPartitionId") int partition,
@Header("kafka_offset") long offset) {
System.out.println("Topic: " + topic + ", Partition: " + partition + ", Offset: " + offset);
System.out.println("Message: " + message);
}
}लिस्नर प्रॉपर्टीज़ कॉन्फ़िगर करना
हालाँकि @KafkaListener कई डिफ़ॉल्ट मानों को संभालता है, फिर भी आप कंज़्यूमर के व्यवहार को अपनी आवश्यकता के अनुसार बदल सकते हैं। bootstrap.servers, auto.offset.reset और key.deserializer जैसी प्रॉपर्टीज़ आमतौर पर आपकी application.properties या application.yml फ़ाइल में सेट की जाती हैं।
- Spring Boot इन कॉन्फ़िगरेशन को अपने-आप पढ़ लेता है।
- ओवरराइड न किए जाने तक, ये सभी
@KafkaListenerपर लागू होती हैं।
अपने Kafka लिस्नर के ज्ञान की जाँच करें
Spring Boot के @KafkaListener एनोटेशन के बारे में निम्नलिखित में से कौन-सा कथन TRUE है?
पुनरावलोकन: Kafka लिस्नर बनाना
आपने Spring Boot के साथ Kafka संदेशों का उपभोग करने की दिशा में पहला कदम उठा लिया है!
@KafkaListenerएनोटेशन कंज़्यूमर बनाना आसान करता है।- कंज़्यूमर को व्यवस्थित करने के लिए आप टॉपिक और एक
groupIdनिर्दिष्ट करते हैं। - लिस्नर String संदेशों, कस्टम ऑब्जेक्ट और मेटाडेटा तक पहुँच—तीनों को संभाल सकते हैं।
- कॉन्फ़िगरेशन अक्सर
application.propertiesके माध्यम से प्रबंधित किया जाता है।
अगले भाग में, हम स्केलेबल और त्रुटि-सहिष्णु संदेश प्रोसेसिंग के लिए कंज़्यूमर समूह कैसे काम करते हैं, यह अधिक विस्तार से देखेंगे!
एआई शिक्षक के साथ उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “Kafka श्रोता कंटेनर बनाना” पाठ निःशुल्क है?
हाँ — उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Kafka श्रोता कंटेनर बनाना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Kafka श्रोता कंटेनर बनाना” में मैं क्या सीखूँगा?
निर्दिष्ट टॉपिक से संदेश अपने-आप प्राप्त करने और उनके गुण कॉन्फ़िगर करने के लिए @KafkaListener विधियाँ बनाइए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“Kafka श्रोता कंटेनर बनाना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Kafka श्रोता कंटेनर बनाना
- उपभोक्ता समूह प्रबंधन
- डीसीरियलाइज़ेशन और संदेश रूपांतरण
- बैच उपभोग और स्वीकृति मोड